android_kernel_oneplus_msm8998/drivers
Michael Turquette 5c905a0861 sched: scheduler-driven cpu frequency selection
Scheduler-driven CPU frequency selection hopes to exploit both
per-task and global information in the scheduler to improve frequency
selection policy, achieving lower power consumption, improved
responsiveness/performance, and less reliance on heuristics and
tunables. For further discussion on the motivation of this integration
see [0].

This patch implements a shim layer between the Linux scheduler and the
cpufreq subsystem. The interface accepts capacity requests from the
CFS, RT and deadline sched classes. The requests from each sched class
are summed on each CPU with a margin applied to the CFS and RT
capacity requests to provide some headroom. Deadline requests are
expected to be precise enough given their nature to not require
headroom. The maximum total capacity request for a CPU in a frequency
domain drives the requested frequency for that domain.

Policy is determined by both the sched classes and this shim layer.

Note that this algorithm is event-driven. There is no polling loop to
check cpu idle time nor any other method which is unsynchronized with
the scheduler, aside from a throttling mechanism to ensure frequency
changes are not attempted faster than the hardware can accommodate them.

Thanks to Juri Lelli <juri.lelli@arm.com> for contributing design ideas,
code and test results, and to Ricky Liang <jcliang@chromium.org>
for initialization and static key inc/dec fixes.

[0] http://article.gmane.org/gmane.linux.kernel/1499836

[smuckle@linaro.org: various additions and fixes, revised commit text]

CC: Ricky Liang <jcliang@chromium.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Signed-off-by: Juri Lelli <juri.lelli@arm.com>
Signed-off-by: Steve Muckle <smuckle@linaro.org>
2016-09-14 14:58:22 +05:30
..
accessibility
acpi ACPI / osi: Fix an issue that acpi_osi=!* cannot disable ACPICA internal strings 2016-06-01 12:15:50 -07:00
amba
android Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-03-14 15:32:21 +08:00
ata libata: LITE-ON CX1-JB256-HP needs lower max_sectors 2016-08-10 11:49:29 +02:00
atm
auxdisplay
base Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-07-29 21:38:37 +01:00
bcma x86/quirks: Add early quirk to reset Apple AirPort card 2016-08-10 11:49:24 +02:00
block nbd: ratelimit error msgs after socket close 2016-05-11 11:21:10 +02:00
bluetooth Bluetooth: vhci: Fix race at creating hci device 2016-06-01 12:15:50 -07:00
bus bus: imx-weim: Take the 'status' property value into account 2016-05-04 14:48:54 -07:00
cdrom
char Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-08-18 12:33:31 +08:00
clk clk: rockchip: initialize flags of clk_init_data in mmc-phase clock 2016-08-10 11:49:28 +02:00
clocksource clockevents/tcb_clksrc: Prevent disabling an already disabled clock 2016-03-03 15:07:15 -08:00
connector connector: bump skb->users before callback invocation 2016-01-04 21:46:45 -05:00
cpufreq sched: scheduler-driven cpu frequency selection 2016-09-14 14:58:22 +05:30
cpuidle sched, cpuidle: Track cpuidle state index in the scheduler 2016-09-14 14:48:50 +05:30
crypto crypto: qat - make qat_asym_algs.o depend on asn1 headers 2016-07-27 09:47:40 -07:00
dca
devfreq
dio
dma dmaengine: at_xdmac: double FIFO flush needed to compute residue 2016-08-10 11:49:25 +02:00
dma-buf CHROMIUM: android: fix warning when releasing active sync point 2016-02-16 13:53:25 -08:00
edac EDAC, sb_edac: Fix rank lookup on Broadwell 2016-07-27 09:47:27 -07:00
eisa
extcon extcon: max77843: Use correct size for reading the interrupt register 2016-05-04 14:48:54 -07:00
firewire
firmware arm64: kaslr: increase randomization granularity 2016-07-29 18:59:49 +02:00
fmc
fpga
gpio Revert "gpiolib: Split GPIO flags parsing and GPIO configuration" 2016-07-27 09:47:29 -07:00
gpu Merge remote-tracking branch 'v4.4/topic/mm-kaslr-pax_usercopy' into linux-linaro-lsk-v4.4 2016-08-27 11:27:14 +08:00
hid UPSTREAM: HID: core: prevent out-of-bound readings 2016-09-14 14:44:29 +05:30
hsi
hv Drivers: hv: vmbus: Fix a Host signaling bug 2016-03-03 15:07:16 -08:00
hwmon hwmon: (dell-smm) Cache fan_type() calls and change fan detection 2016-07-27 09:47:37 -07:00
hwspinlock drivers/hwspinlock: fix race between radix tree insertion and lookup 2016-02-25 12:01:23 -08:00
hwtracing Merge tag 'v4.4.17' into linux-linaro-lsk-v4.4 2016-08-11 12:15:51 +08:00
i2c i2c: i801: Allow ACPI SystemIO OpRegion to conflict with PCI BAR 2016-08-16 09:30:48 +02:00
ide
idle intel_idle: prevent SKL-H boot failure when C8+C9+C10 enabled 2016-04-12 09:09:05 -07:00
iio iio:ad7266: Fix probe deferral for vref 2016-07-27 09:47:37 -07:00
infiniband IB/mlx4: Properly initialize GRH TClass and FlowLabel in AHs 2016-07-27 09:47:27 -07:00
input Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-08-11 12:15:55 +08:00
iommu iommu/amd: Fix unity mapping initialization race 2016-07-27 09:47:32 -07:00
ipack
irqchip irqchip/gic-v3: Configure all interrupts as non-secure Group-1 2016-06-01 12:15:49 -07:00
isdn ser_gigaset: remove unnecessary kfree() calls from release method 2015-12-15 13:24:21 -05:00
leds
lguest
lightnvm lightnvm: wrong offset in bad blk lun calculation 2015-12-29 08:28:32 -07:00
macintosh
mailbox
mcb mcb: Fixed bar number assignment for the gdd 2016-06-01 12:15:53 -07:00
md ANDROID: dm: android-verity: Allow android-verity to be compiled as an independent module 2016-09-14 14:26:20 +05:30
media UPSTREAM: [media] xc2028: unlock on error in xc2028_set_config() 2016-09-14 14:26:32 +05:30
memory memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing 2016-07-27 09:47:35 -07:00
memstick
message
mfd mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup table correctly 2016-06-07 18:14:34 -07:00
misc Implement memory_state_time, used by qcom,cpubw 2016-08-18 18:56:03 +05:30
mmc Android: MMC/UFS IO Latency Histograms. 2016-09-14 14:43:34 +05:30
mtd Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-07-29 21:38:37 +01:00
net BACKPORT: brcmfmac: defer DPC processing during probe 2016-08-18 18:56:03 +05:30
nfc
ntb
nubus
nvdimm libnvdimm, pfn: fix uuid validation 2016-04-20 15:41:54 +09:00
nvme NVMe: IO ending fixes on surprise removal 2015-12-22 10:12:04 -07:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-11 11:21:21 +02:00
of Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-07-29 21:38:37 +01:00
oprofile
parisc parisc iommu: fix panic due to trying to allocate too large region 2015-12-12 16:07:25 +01:00
parport
pci PCI: Disable all BAR sizing for devices with non-compliant BARs 2016-06-07 18:14:35 -07:00
pcmcia pcmcia: db1xxx_ss: fix last irq_to_gpio user 2016-04-20 15:42:09 +09:00
perf
phy phy: core: fix wrong err handle for phy_power_on 2016-03-03 15:07:28 -08:00
pinctrl pinctrl: imx: Do not treat a PIN without MUX register as an error 2016-08-10 11:49:27 +02:00
platform Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-08-11 12:15:55 +08:00
pnp PNP: Add Broadwell to Intel MCH size workaround 2016-08-16 09:30:48 +02:00
power Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-08-11 12:15:55 +08:00
powercap powercap / RAPL: fix BIOS lock check 2015-12-12 02:31:11 +01:00
pps pps: do not crash when failed to register 2016-08-10 11:49:25 +02:00
ps3
ptp
pwm pwm: brcmstb: Fix check of devm_ioremap_resource() return code 2016-05-04 14:48:47 -07:00
rapidio
ras
regulator regulator: axp20x: Fix axp22x ldo_io voltage ranges 2016-05-18 17:06:51 -07:00
remoteproc
reset
rpmsg
rtc Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-05-12 09:27:18 +08:00
s390 qeth: delete napi struct when removing a qeth device 2016-08-10 11:49:28 +02:00
sbus
scsi Android: MMC/UFS IO Latency Histograms. 2016-09-14 14:43:34 +05:30
sfi
sh drivers: sh: Restore legacy clock domain on SuperH platforms 2016-03-09 15:34:49 -08:00
sn
soc soc: rockchip: power-domain: fix err handle while probing 2016-05-11 11:21:11 +02:00
spi spi: sun4i: fix FIFO limit 2016-08-10 11:49:28 +02:00
spmi
ssb
staging Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-08-18 12:33:31 +08:00
target target: Fix target_release_cmd_kref shutdown comp leak 2016-04-12 09:09:02 -07:00
tc
thermal thermal: cpu_cooling: fix improper order during initialization 2016-07-27 09:47:29 -07:00
thunderbolt thunderbolt: Fix double free of drom buffer 2016-06-01 12:15:53 -07:00
tty UPSTREAM: tty: Prevent ldisc drivers from re-using stale tty fields 2016-09-14 14:44:29 +05:30
uio
usb UPSTREAM: usb: gadget: configfs: add mutex lock before unregister gadget 2016-08-18 18:56:03 +05:30
uwb
vfio vfio: fix ioctl error handling 2016-03-09 15:34:50 -08:00
vhost vhost: replace % with & on data path 2015-12-07 17:28:10 +02:00
video Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-05-12 09:27:18 +08:00
virt
virtio virtio_balloon: fix PFN format for virtio-1 2016-07-27 09:47:34 -07:00
vlynq
vme
w1 w1: ds2482: Manage SLPZ pin sleep state 2016-02-16 13:54:18 -08:00
watchdog watchdog: rc32434_wdt: fix ioctl error handling 2016-04-12 09:08:54 -07:00
xen xenbus: don't bail early from xenbus_dev_request_and_reply() 2016-08-10 11:49:26 +02:00
zorro
Kconfig Revert "switch: switch class and GPIO drivers." 2016-05-19 12:32:41 +05:30
Makefile Revert "switch: switch class and GPIO drivers." 2016-05-19 12:32:41 +05:30