summaryrefslogtreecommitdiff
path: root/include/linux (follow)
Commit message (Collapse)AuthorAge
...
* | | | | | | | | | | | Merge "power_supply: Add PE_START property"Linux Build Service Account2016-10-19
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | power_supply: Add PE_START propertyAbhijeet Dharmapurikar2016-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This property will be used to indicate to the policy engine that it should start its activities. Change-Id: I9deb48f7bff71b022c5899e6eff7617526d02324 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | | | | | | | | | | Merge "sched: Add multiple load reporting policies for cpu frequency"Linux Build Service Account2016-10-19
|\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | sched: Add multiple load reporting policies for cpu frequencySyed Rameez Mustafa2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous patches in this series introduce the mechanics of CPU load tracking without fixups for intra cluster migration and top task load tracking. Add a tunable that dictates what of the above needs to be considered when reporting load to the governor. The default policy is to take the maximum of the CPU load and top task load. Change-Id: Ie585a11ed774b929910d04c41471db3a2a102ec5 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
* | | | | | | | | | | | | | Merge "sched: Optimize the next top task search logic upon task migration"Linux Build Service Account2016-10-19
|\| | | | | | | | | | | | |
| * | | | | | | | | | | | | sched: Optimize the next top task search logic upon task migrationSyed Rameez Mustafa2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | find_next_top_index() is responsible for finding the second top task on a CPU when the top task migrates away from that CPU. This operation is expensive as we need to iterate the entire array of top tasks to find the second top task. Optimize this by introducing bitmaps for tracking top task indices. There are two bitmaps; one for the previous window and one for the current window. Each bit in a bitmap tracks whether the corresponding bucket in the top task hashmap has a non zero refcount. The bit is set when the refcount becomes non zero and is cleared when it becomes zero. Finding the second top task upon migration is then simply a matter of finding the highest set bit in the bitmap. Change-Id: Ibafaf66eed756b0328704dfaa89c17ab0d84e359 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
| * | | | | | | | | | | | | sched: Add per CPU load tracking for each taskSyed Rameez Mustafa2016-10-17
| | |/ / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keeping a track of the load footprint of each task on every CPU that it executed on gives the scheduler much more flexibility in terms of the number of frequency guidance policies. These new fields will be used in subsequent patches as we alter the load fixup mechanism upon task migration. We still need to maintain the curr/prev_window sums as they will also be required in subsequent patches as we start to track top tasks based on cumulative load. Also, we need to call init_new_task_load() for the idle task. This is an existing harmless bug as load tracking for the idle task is irrelevant. However, in this patch we are adding pointers to the ravg structure. These pointers have to be initialized even for the idle task. Finally move init_new_task_load() to sched_fork(). This was always the more appropriate place, however, following the introduction of new pointers in the ravg struct, this is necessary to avoid races with functions such as reset_all_task_stats(). Change-Id: Ib584372eb539706da4319973314e54dae04e5934 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
* | | | | | | | | | | | | Merge "power_supply: add property to reflect switcher frequency"Linux Build Service Account2016-10-18
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | |
| * | | | | | | | | | | | power_supply: add property to reflect switcher frequencyHarry Yang2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modern battery chargers use a switching buck whose frequency can be adjusted. Create a property to read/update it. CRs-Fixed: 1048242 Change-Id: I7611e6b697222427303df47f837716005e013443 Signed-off-by: Harry Yang <harryy@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | | | | | | | | | | Merge "smb-lib: provide insertion removal functions"Linux Build Service Account2016-10-18
|\| | | | | | | | | | | | | |/ / / / / / / / / / / |/| | | | | | | | | | |
| * | | | | | | | | | | power_supply: add PARALLEL_PERCENT propertyNicholas Troast2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PARALLEL_PERCENT property is used for the parallel distribution percentage. Change-Id: I7d2a7a775437770075ddbd2d1a36ce5d9e44a631 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | | | | | | | | | | Merge "clk: qcom: clk-voter: Add support for voter clocks"Linux Build Service Account2016-10-15
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | clk: qcom: clk-voter: Add support for voter clocksTaniya Das2016-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Voter clocks nodes would require aggregation of all child node rates. Certain clocks that are not rate-settable can still take advantage of voter clock functionality. Change-Id: Ibab7a5aa6aa89236974fcd0d65ffe0bd1a7acb12 Signed-off-by: Taniya Das <tdas@codeaurora.org>
* | | | | | | | | | | | | Merge "power_supply: Add additional USB PD properties"Linux Build Service Account2016-10-15
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | |
| * | | | | | | | | | | | power_supply: Add additional USB PD propertiesJack Pham2016-10-14
| |/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add additional properties for USB PD usage: - POWER_SUPPLY_PROP_PD_IN_HARD_RESET is set when PD is undergoing a hard reset - POWER_SUPPLY_PROP_PD_CURRENT_MAX used to indicate the current limit as negotiated over PD - POWER_SUPPLY_PROP_PD_USB_SUSPEND_SUPPORTED is set when USB suspend current limit must be honored when USB bus is suspended Also add enums to distinguish PD activity state: inactive, active. Change-Id: I0a3d98ac1e1202e5b655b2e3a8102691b61359c8 Signed-off-by: Jack Pham <jackp@codeaurora.org>
* | | | | | | | | | | | Merge "leds: qpnp-flash-v2: Add support for preemptive charger mitigation"Linux Build Service Account2016-10-15
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | leds: qpnp-flash-v2: Add support for preemptive charger mitigationDevesh Jhunjhunwala2016-10-12
| |/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to configure and trigger preemptive charger mitigation in flash driver. Change-Id: Iec92d2037fcc60446760182c9eda53918e6e094c Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
* | | | | | | | | | | | Merge "ASoC: wcd934x: update keeper enable for soundwire functionality"Linux Build Service Account2016-10-14
|\ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / |/| | | | | | | | | | |
| * | | | | | | | | | | drivers: mfd: Add support for wcd934x 1.1 versionPhani Kumar Uppalapati2016-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to check for wcd934x 1.1 version and update register values accordingly. Change-Id: Id9fb06fa25dfdd56250a76248f71758af39bade6 Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* | | | | | | | | | | | Merge "diag: Add MSG SSID for DPM"Linux Build Service Account2016-10-12
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | diag: Add MSG SSID for DPMChris Lew2016-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update diag header with new MSG SSID for DPM. CRs-Fixed: 1076696 Change-Id: I681509b653c419159f6ca4172c5ff66a1cae1b79 Signed-off-by: Chris Lew <clew@codeaurora.org>
* | | | | | | | | | | | | Merge "qpnp-smb2: add the PARALLEL_DISABLE property to usb psy"Linux Build Service Account2016-10-11
|\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | power_supply: add PARALLEL_DISABLE propertyNicholas Troast2016-10-10
| | |/ / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PARALLEL_DISABLE property is used to enable or disable parallel charging. Change-Id: If2845efa942abc5849890b45de525222632b32db Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | | | | | | | | | | | Merge "diag: Update msg, log and event information"Linux Build Service Account2016-10-11
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | |
| * | | | | | | | | | | | diag: Update msg, log and event informationChris Lew2016-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the diag header with latest log, message and event information to match the list maintained by the peripherals. CRs-Fixed: 1074803 Change-Id: I2df3304029a05ce0f4cb11551e9ed768cd89f8b5 Signed-off-by: Chris Lew <clew@codeaurora.org>
* | | | | | | | | | | | | Merge "iommu: Remove obsolete domain attribute"Linux Build Service Account2016-10-11
|\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | iommu: Remove obsolete domain attributeMitchel Humpherys2016-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DOMAIN_ATTR_COHERENT_HTW_DISABLE IOMMU domain attribute is no longer used. Rip it out. Change-Id: Icc8b81e3020276a1a2c0ed7798eb36568cb866db Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | | | | | | | | Merge "msm: gsi: driver upgrade for gsi version 1.2 and 1.3"Linux Build Service Account2016-10-10
|\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | msm: gsi: driver upgrade for gsi version 1.2 and 1.3Skylar Chang2016-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to handle different HW versions on the driver. Update register/sequences per HPG. Change-Id: Ibb6b1ce3a035260edbba61c2a443bbda09b17cee CRs-Fixed: 1019773 Acked-by: Ady Abraham <adya@qti.qualcomm.com> Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
* | | | | | | | | | | | | | | Merge "sched/tune: add initial support for CGroups based boosting"Linux Build Service Account2016-10-10
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | | sched/tune: add initial support for CGroups based boostingPatrick Bellasi2016-10-10
| | |_|_|_|_|_|_|_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support task performance boosting, the usage of a single knob has the advantage to be a simple solution, both from the implementation and the usability standpoint. However, on a real system it can be difficult to identify a single value for the knob which fits the needs of multiple different tasks. For example, some kernel threads and/or user-space background services should be better managed the "standard" way while we still want to be able to boost the performance of specific workloads. In order to improve the flexibility of the task boosting mechanism this patch is the first of a small series which extends the previous implementation to introduce a "per task group" support. This first patch introduces just the basic CGroups support, a new "schedtune" CGroups controller is added which allows to configure different boost value for different groups of tasks. To keep the implementation simple but still effective for a boosting strategy, the new controller: 1. allows only a two layer hierarchy 2. supports only a limited number of boost groups A two layer hierarchy allows to place each task either: a) in the root control group thus being subject to a system-wide boosting value b) in a child of the root group thus being subject to the specific boost value defined by that "boost group" The limited number of "boost groups" supported is mainly motivated by the observation that in a real system it could be useful to have only few classes of tasks which deserve different treatment. For example, background vs foreground or interactive vs low-priority. As an additional benefit, a limited number of boost groups allows also to have a simpler implementation especially for the code required to compute the boost value for CPUs which have runnable tasks belonging to different boost groups. Change-Id: I1304e33a8440bfdad9c8bcf8129ff390216f2e32 cc: Tejun Heo <tj@kernel.org> cc: Li Zefan <lizefan@huawei.com> cc: Johannes Weiner <hannes@cmpxchg.org> cc: Ingo Molnar <mingo@redhat.com> cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com> Git-commit: 13001f47c9a610705219700af4636386b647e231 Git-repo: https://android.googlesource.com/kernel/common Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
* | | | | | | | | | | | | | | Merge "mdss: DisplayPort: update link-training settings and do DP reset"Linux Build Service Account2016-10-10
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / |/| | | | | | | | | | | | | |
| * | | | | | | | | | | | | | msm: mdss: dp: fix audio teardown sequenceTatenda Chipeperekwa2016-10-07
| |/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First update the audio switch node to indicate that the cable was disconnected. Wait for the audio codec to indicate that the teardown of the audio path has been completed, timing out after three seconds. This ensures that the audio framework will start and end the audio teardown while the interface VSync is still running, ensuring a graceful shutdown of the audio path. CRs-Fixed: 1074218 Change-Id: Ia9c792613e5cd9ac273185c6b2f4b30b5df67496 Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
* | | | | | | | | | | | | | Merge "usb: host: Flush hub workqueue before stopping controller"Linux Build Service Account2016-10-07
|\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | usb: host: Flush hub workqueue before stopping controllerHemant Kumar2016-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when xhci platform driver is removed with a usb device connected there is a possibility of race between xhci platform driver remove context and device disconnect hub event work context. This results into use after free: xhci_mem_clean() called from xhci_plat_remove() freeing the xhci virtual device when a structure member is being accessed by xhci_alloc_virt_device() after virtual device allocation as part of connect hub event. deadlock: Upon device disconnect if stop endpoint command remains pending xhci_mem_cleanup() frees xhci virtual device which also frees up endpoint stop_cmd_timer. udev->dev lock is held until cancelled urb is not given back to class driver. In a different context xhci platform remove calls usb_disconnect() on children of root hub which tries to acquire the same udev->dev lock this results into a dead lock condition. Fix issues by making sure hub events are flushed before xhci is stopped. Change-Id: I86d414bca17464d1dff3346ec668d8b3efec1652 Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
* | | | | | | | | | | | | | | qpnp: revid: Add support to read FAB ID for PMICOBALTSiddartha Mohanadoss2016-10-07
| |/ / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PMICOBALT supports reading the FAB ID from the REVID peripheral. Add an optional property qcom,fab-id-valid to check if support for FAB ID is available in the REVID peripheral for the PMIC. Change-Id: If8212618baa7533b008228a71740acf1d6c72a52 Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
* | | | | | | | | | | | | | Merge "sched/tune: add sysctl interface to define a boost value"Linux Build Service Account2016-10-06
|\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | sched/tune: add sysctl interface to define a boost valuePatrick Bellasi2016-10-05
| | |_|/ / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current (CFS) scheduler implementation does not allow "to boost" tasks performance by running them at a higher OPP compared to the minimum required to meet their workload demands. To support tasks performance boosting the scheduler should provide a "knob" which allows to tune how much the system is going to be optimised for energy efficiency vs performance. This patch is the first of a series which provides a simple interface to define a tuning knob. One system-wide "boost" tunable is exposed via: /proc/sys/kernel/sched_cfs_boost which can be configured in the range [0..100], to define a percentage where: - 0% boost requires to operate in "standard" mode by scheduling tasks at the minimum capacities required by the workload demand - 100% boost requires to push at maximum the task performances, "regardless" of the incurred energy consumption A boost value in between these two boundaries is used to bias the power/performance trade-off, the higher the boost value the more the scheduler is biased toward performance boosting instead of energy efficiency. Change-Id: I59a41725e2d8f9238a61dfb0c909071b53560fc0 cc: Ingo Molnar <mingo@redhat.com> cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com> Git-commit: 63c8fad2b06805ef88f1220551289f0a3c3529f1 Git-repo: https://source.codeaurora.org/quic/la/kernel/msm-4.4 Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
* | | | | | | | | | | | | | Merge "iommu: Fix compilation error without CONFIG_IOMMU_API"Linux Build Service Account2016-10-06
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / / / / / |/| | | | | | | | | | | | |
| * | | | | | | | | | | | | iommu: Fix compilation error without CONFIG_IOMMU_APIPatrick Daly2016-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an "inline" so the compiler no longer gives a defined-but-not-used warning. Change-Id: I226242bf994e659d8018a885f20c3a3f80b9b8e5 Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
* | | | | | | | | | | | | | Merge "RFC: FROMLIST: cgroup: reduce read locked section of ↵Linux Build Service Account2016-10-05
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | cgroup_threadgroup_rwsem during fork"
| * | | | | | | | | | | | | RFC: FROMLIST: cgroup: avoid synchronize_sched() in __cgroup_procs_write()Peter Zijlstra2016-08-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current percpu-rwsem read side is entirely free of serializing insns at the cost of having a synchronize_sched() in the write path. The latency of the synchronize_sched() is too high for cgroups. The commit 1ed1328792ff talks about the write path being a fairly cold path but this is not the case for Android which moves task to the foreground cgroup and back around binder IPC calls from foreground processes to background processes, so it is significantly hotter than human initiated operations. Switch cgroup_threadgroup_rwsem into the slow mode for now to avoid the problem, hopefully it should not be that slow after another commit 80127a39681b ("locking/percpu-rwsem: Optimize readers and reduce global impact"). We could just add rcu_sync_enter() into cgroup_init() but we do not want another synchronize_sched() at boot time, so this patch adds the new helper which doesn't block but currently can only be called before the first use. Cc: Tejun Heo <tj@kernel.org> Cc: Paul McKenney <paulmck@linux.vnet.ibm.com> Reported-by: John Stultz <john.stultz@linaro.org> Reported-by: Dmitry Shmidt <dimitrysh@google.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Oleg Nesterov <oleg@redhat.com> [jstultz: backported to 4.4] Change-Id: I34aa9c394d3052779b56976693e96d861bd255f2 Mailing-list-URL: https://lkml.org/lkml/2016/8/11/557 Signed-off-by: John Stultz <john.stultz@linaro.org> Git-commit: 0c3240a1ef2e840aaa17f593326e3642bc857aa7 Git-repo: https://android.googlesource.com/kernel/common/+/android-4.4 Signed-off-by: Omprakash Dhyade <odhyade@codeaurora.org>
| * | | | | | | | | | | | | RFC: FROMLIST: locking/percpu-rwsem: Optimize readers and reduce global impactPeter Zijlstra2016-08-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the percpu-rwsem switches to (global) atomic ops while a writer is waiting; which could be quite a while and slows down releasing the readers. This patch cures this problem by ordering the reader-state vs reader-count (see the comments in __percpu_down_read() and percpu_down_write()). This changes a global atomic op into a full memory barrier, which doesn't have the global cacheline contention. This also enables using the percpu-rwsem with rcu_sync disabled in order to bias the implementation differently, reducing the writer latency by adding some cost to readers. Mailing-list-URL: https://lkml.org/lkml/2016/8/9/181 Cc: Paul McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> [jstultz: Backported to 4.4] Change-Id: I8ea04b4dca2ec36f1c2469eccafde1423490572f Signed-off-by: John Stultz <john.stultz@linaro.org> Git-commit: 3228c5eb7af2b4cb981706b88ed3c3e81ab8e80a Git-repo: https://android.googlesource.com/kernel/common/+/android-4.4 Signed-off-by: Omprakash Dhyade <odhyade@codeaurora.org>
* | | | | | | | | | | | | | Merge "sched: add a knob to prefer the waker CPU for sync wakeups"Linux Build Service Account2016-10-03
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / / / |/| | | | | | | | | | | | |
| * | | | | | | | | | | | | sched: add a knob to prefer the waker CPU for sync wakeupsPavankumar Kondeti2016-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current policy has a preference to select an idle CPU in the waker cluster compared to the waker CPU running only 1 task. By selecting an idle CPU, it eliminates the chance of waker migrating to a different CPU after the wakee preempts it. This policy is also not susceptible to the incorrect "sync" usage i.e the waker does not goto sleep after waking up the wakee. However LPM exit latency associated with an idle CPU outweigh the above benefits on some targets. So add a knob to prefer the waker CPU having only 1 runnable task over idle CPUs in the waker cluster. Change-Id: Id974748c07625c1b19112235f426a5d204dfdb33 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
* | | | | | | | | | | | | | Merge "msm: ipa: Recycle wan buffer"Linux Build Service Account2016-09-30
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| | | | | | | | | | | | |
| * | | | | | | | | | | | | msm: ipa: Recycle wan bufferSunil Paidimarri2016-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable recycle wan buffer support in IPA driver to support napi in rmnet ipa0 net device. Change-Id: I54efe72b5cf4ecdf50c7c642a8b453c46d057e57 CRs-Fixed: 1072443 Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
* | | | | | | | | | | | | | Merge "Migrate mpq demux driver from kernel 3.18 to 4.4"Linux Build Service Account2016-09-29
|\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | Migrate mpq demux driver from kernel 3.18 to 4.4Udaya Mallavarapu2016-09-20
| | |_|_|/ / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change migrates all the relevant files consisting of the mpq demux driver and its plugins, including the addition of TSPPv1 HW driver. The snapshot is taken as of msm-3.18, 'commit e12c33f73fb0 ("Merge defconfig: Enabling confg INET_DIAG_DESTROY")' In addition, introduce a few code changes to reduce checkpatch warnings, typos and other style issues. CRs-Fixed: 1057562 Change-Id: I76c9a9e44755a4a77e6cffb1dc07f5b28c8b34b8 Signed-off-by: Udaya Mallavarapu <udaym@codeaurora.org>
* | | | | | | | | | | | | | Merge "ASoC: msmcobalt: Enable msmcobalt to use audio notifier"Linux Build Service Account2016-09-29
|\ \ \ \ \ \ \ \ \ \ \ \ \ \