linux_dsm_epyc7002/drivers
Rafael J. Wysocki cab09f3d2d cpuidle: teo: Allow tick to be stopped if PM QoS is used
The TEO goveror prevents the scheduler tick from being stopped (unless
stopped already) if there is a PM QoS latency constraint for the given
CPU and the target residency of the deepest idle state matching that
constraint is below the tick boundary.

However, that is problematic if CPUs with PM QoS latency constraints
are idle for long times, because it effectively causes the tick to
run on them all the time which is wasteful.  [It is also confusing
and questionable if they are full dynticks CPUs.]

To address that issue, modify the TEO governor to carry out the
entire search for the most suitable idle state (from the target
residency perspective) even if a latency constraint is present,
to allow it to determine the expected idle duration in all cases.

Also, when using the last several measured idle duration values
to refine the idle state selection, make it compare those values
with the current expected idle duration value (instead of
comparing them with the target residency of the idle state
selected so far) which should prevent the tick from being
retained when it makes sense to stop it sometimes (especially
in the presence of PM QoS latency constraints).

Fixes: b26bf6ab71 ("cpuidle: New timer events oriented governor for tickless systems")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-08-05 11:02:44 +02:00
..
accessibility
acpi libnvdimm fixes v5.3-rc2 2019-07-27 08:25:51 -07:00
amba
android binder: prevent transactions to context manager from its own process. 2019-07-24 11:02:28 +02:00
ata
atm
auxdisplay
base Char/Misc driver fixes for 5.3-rc2 2019-07-28 10:26:10 -07:00
bcma
block for-linus-20190726 2019-07-26 10:32:12 -07:00
bluetooth
bus ARM: SoC-related driver updates 2019-07-19 17:13:56 -07:00
cdrom
char hpet: Fix division by zero in hpet_time_div() 2019-07-25 14:39:51 +02:00
clk
clocksource
connector connector: remove redundant input callback from cn_dev 2019-07-21 13:31:14 -07:00
counter
cpufreq cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init() 2019-07-23 09:49:10 +02:00
cpuidle cpuidle: teo: Allow tick to be stopped if PM QoS is used 2019-08-05 11:02:44 +02:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-19 12:23:37 -07:00
dax Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
dca
devfreq
dio
dma
dma-buf Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
edac
eisa
extcon
firewire firewire: mark expected switch fall-throughs 2019-07-25 20:09:37 -05:00
firmware Merge branch 'for-linus-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft 2019-07-26 09:43:43 -07:00
fpga fpga-manager: altera-ps-spi: Fix build error 2019-07-24 11:29:41 +02:00
fsi
gnss
gpio
gpu Wimplicit-fallthrough patches for 5.3-rc2 2019-07-27 11:04:18 -07:00
hid
hsi
hv proc/sysctl: add shared variables for range check 2019-07-18 17:08:07 -07:00
hwmon hwmon: (nct6775) Fix register address and added missed tolerance for nct6106 2019-07-21 19:18:45 -07:00
hwspinlock
hwtracing
i2c
i3c
ide
idle
iio
infiniband SCSI fixes on 20190720 2019-07-20 10:04:58 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-07-20 12:22:30 -07:00
interconnect
iommu iommu/amd: Add support for X2APIC IOMMU interrupts 2019-07-23 17:41:52 +02:00
ipack
irqchip
isdn ISDN: hfcsusb: checking idx of ep configuration 2019-07-15 11:10:31 -07:00
leds
lightnvm
macintosh
mailbox
mcb
md for-linus-20190726 2019-07-26 10:32:12 -07:00
media media updates for v5.3-rc1 2019-07-22 09:01:47 -07:00
memory Kbuild updates for v5.3 (2nd) 2019-07-20 09:34:55 -07:00
memstick
message
mfd
misc eeprom: make older eeprom drivers select NVMEM_SYSFS 2019-07-25 14:39:51 +02:00
mmc
mtd mtd: onenand_base: Mark expected switch fall-through 2019-07-25 20:09:54 -05:00
mux
net Wimplicit-fallthrough patches for 5.3-rc2 2019-07-27 11:04:18 -07:00
nfc
ntb New feature to add support for NTB virtual MSI interrupts, the ability 2019-07-21 09:46:59 -07:00
nubus
nvdimm libnvdimm fixes v5.3-rc2 2019-07-27 08:25:51 -07:00
nvme Revert "nvme-pci: don't create a read hctx mapping without read queues" 2019-07-23 17:47:02 +02:00
nvmem
of
opp
oprofile
parisc
parport
pci New feature to add support for NTB virtual MSI interrupts, the ability 2019-07-21 09:46:59 -07:00
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap powercap: Invoke powercap_init() and rapl_init() earlier 2019-07-22 11:23:00 +02:00
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset ARM: SoC-related driver updates 2019-07-19 17:13:56 -07:00
rpmsg
rtc
s390 virtio/s390: fix race on airq_areas[] 2019-07-26 13:36:18 +02:00
sbus
scsi SCSI fixes on 20190726 2019-07-26 14:20:28 -07:00
sfi
sh
siox
slimbus
sn
soc Merge branch 'pdf_fixes_v1' of https://git.linuxtv.org/mchehab/experimental into mauro 2019-07-22 13:51:20 -06:00
soundwire
spi
spmi
ssb
staging
target scsi: target: cxgbit: add support for IEEE_8021QAZ_APP_SEL_STREAM selector 2019-07-22 17:04:20 -04:00
tc
tee
thermal int340X/processor_thermal_device: Fix proc_thermal_rapl_remove() 2019-07-23 09:36:07 +02:00
thunderbolt
tty TTY fixes for 5.3-rc2 2019-07-28 10:18:33 -07:00
uio
usb xhci: Fix crash if scatter gather is used with Immediate Data Transfer (IDT). 2019-07-25 11:26:42 +02:00
uwb
vfio
vhost
video
virt
virtio Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
visorbus
vlynq
vme
w1
watchdog
xen xen: fixes and features for 5.3-rc1 2019-07-19 11:41:26 -07:00
zorro
Kconfig
Makefile