linux-stable/drivers
Peter Zijlstra a1d912d7ac intel_idle: Disable IBRS during long idle
commit bf5835bcdb upstream.

Having IBRS enabled while the SMT sibling is idle unnecessarily slows
down the running sibling. OTOH, disabling IBRS around idle takes two
MSR writes, which will increase the idle latency.

Therefore, only disable IBRS around deeper idle states. Shallow idle
states are bounded by the tick in duration, since NOHZ is not allowed
for them by virtue of their short target residency.

Only do this for mwait-driven idle, since that keeps interrupts disabled
across idle, which makes disabling IBRS vs IRQ-entry a non-issue.

Note: C6 is a random threshold, most importantly C1 probably shouldn't
disable IBRS, benchmarking needed.

Suggested-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
[cascardo: no CPUIDLE_FLAG_IRQ_ENABLE]
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-23 12:54:04 +02:00
..
accessibility
acpi ACPI: video: Fix acpi_video_handles_brightness_key_presses() 2022-07-21 21:24:32 +02:00
amba
android
ata ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo() 2022-06-22 14:21:56 +02:00
atm
auxdisplay
base x86/bugs: Report AMD retbleed vulnerability 2022-07-23 12:54:02 +02:00
bcma
block virtio-blk: modify the value type of num in virtio_queue_rq() 2022-07-12 16:35:11 +02:00
bluetooth Bluetooth: btmtksdio: fix use-after-free at btmtksdio_recv_event 2022-07-12 16:35:08 +02:00
bus bus: mhi: Fix pm_state conversion to string 2022-07-12 16:35:03 +02:00
cdrom
char random: update comment from copy_to_user() -> copy_to_iter() 2022-06-29 09:03:31 +02:00
clk clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3 2022-07-12 16:34:58 +02:00
clocksource clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from ixp4xx_timer_setup() 2022-07-07 17:53:32 +02:00
comedi comedi: vmk80xx: fix expression for tx buffer size 2022-06-22 14:22:03 +02:00
connector
counter
cpufreq cpufreq: pmac32-cpufreq: Fix refcount leak bug 2022-07-21 21:24:34 +02:00
cpuidle cpuidle: PSCI: Improve support for suspend-to-RAM for PSCI OSI mode 2022-06-09 10:22:33 +02:00
crypto crypto: sun8i-ss - handle zero sized sg 2022-06-09 10:23:11 +02:00
cxl cxl/port: Hold port reference until decoder release 2022-07-12 16:34:58 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-08 14:23:31 +02:00
dca
devfreq PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events 2022-07-07 17:53:27 +02:00
dio
dma dmaengine: idxd: force wq context cleanup on device disable path 2022-07-12 16:35:19 +02:00
dma-buf dma-buf/poll: Get a file reference for outstanding fence callbacks 2022-07-12 16:34:51 +02:00
edac EDAC/dmc520: Don't print an error for each unconfigured interrupt line 2022-06-09 10:22:47 +02:00
eisa
extcon extcon: Modify extcon device to be created after driver data is set 2022-06-14 18:36:22 +02:00
firewire firewire: core: extend card->lock in fw_core_handle_bus_reset 2022-05-12 12:30:05 +02:00
firmware firmware: sysfb: Add sysfb_disable() helper function 2022-07-21 21:24:35 +02:00
fpga
fsi fsi: occ: Force sequence numbering per OCC 2022-07-07 17:53:32 +02:00
gnss
gpio gpio: winbond: Fix error code in winbond_gpio_get() 2022-06-29 09:03:26 +02:00
gpu drm/aperture: Run fbdev removal before internal helpers 2022-07-21 21:24:44 +02:00
greybus
hid HID: amd_sfh: Modify the hid name 2022-06-09 10:22:56 +02:00
hsi
hv Drivers: hv: vmbus: Release cpu lock in error case 2022-06-22 14:22:00 +02:00
hwmon hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-07 17:53:35 +02:00
hwspinlock
hwtracing coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier 2022-06-14 18:36:06 +02:00
i2c i2c: cadence: Unregister the clk notifier in error path 2022-07-12 16:35:16 +02:00
i3c
idle intel_idle: Disable IBRS during long idle 2022-07-23 12:54:04 +02:00
iio iio: accel: mma8452: use the correct logic to get mma8452_data 2022-07-12 16:35:01 +02:00
infiniband RDMA/cm: Fix memory leak in ib_cm_insert_listen 2022-07-07 17:53:26 +02:00
input Input: goodix - try not to touch the reset-pin on x86/ACPI devices 2022-07-12 16:34:51 +02:00
interconnect interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate 2022-06-09 10:23:31 +02:00
iommu iommu/vt-d: Fix PCI bus rescan device hot add 2022-07-12 16:35:09 +02:00
ipack
irqchip irqchip: or1k-pic: Undefine mask_ack for level triggered hardware 2022-07-21 21:24:40 +02:00
isdn
leds
macintosh macintosh: via-pmu and via-cuda need RTC_LIB 2022-06-09 10:23:12 +02:00
mailbox mailbox: forward the hrtimer if not queued and under a lock 2022-06-09 10:23:12 +02:00
mcb
md dm raid: fix KASAN warning in raid5_add_disks 2022-07-07 17:53:24 +02:00
media media: davinci: vpif: fix use-after-free on driver unbind 2022-07-12 16:34:57 +02:00
memory memory: renesas-rpc-if: Avoid unaligned bus access for HyperFlash 2022-07-12 16:34:52 +02:00
memstick
message
mfd mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe() 2022-06-09 10:23:12 +02:00
misc misc: rtsx_usb: set return value in rsp_buf alloc err path 2022-07-12 16:35:17 +02:00
mmc mmc: mediatek: wait dma stop bit reset to 0 2022-06-29 09:03:19 +02:00
most
mtd Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting" 2022-07-15 10:13:00 +02:00
mux
net Revert "can: xilinx_can: Limit CANFD brp to 2" 2022-07-21 21:24:40 +02:00
nfc NFC: nxp-nci: don't print header length mismatch on i2c error 2022-07-21 21:24:35 +02:00
ntb
nubus
nvdimm nvdimm: Fix badblocks clear off-by-one error 2022-07-07 17:53:24 +02:00
nvme nvme-pci: phison e16 has bogus namespace ids 2022-07-21 21:24:41 +02:00
nvmem
of of: overlay: do not break notify on NOTIFY_{OK|STOP} 2022-06-09 10:22:50 +02:00
opp OPP: call of_node_put() on error path in _bandwidth_supported() 2022-06-09 10:23:13 +02:00
parisc parisc: Fix CPU affinity for Lasi, WAX and Dino chips 2022-04-13 20:59:14 +02:00
parport
pci PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset 2022-07-12 16:34:52 +02:00
pcmcia pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards 2022-06-14 18:36:02 +02:00
perf arm_pmu: Validate single/group leader events 2022-04-27 14:39:00 +02:00
phy phy: qcom-qmp: fix pipe-clock imbalance on power-on failure 2022-06-14 18:36:06 +02:00
pinctrl pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux() 2022-07-21 21:24:36 +02:00
platform platform/x86: hp-wmi: Ignore Sanitization Mode event 2022-07-21 21:24:34 +02:00
pnp
power extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
powercap
pps pps: clients: gpio: Propagate return value from pps_gpio_probe 2022-04-08 14:23:44 +02:00
ps3
ptp ptp: replace snprintf with sysfs_emit 2022-04-13 20:59:01 +02:00
pwm pwm: raspberrypi-poe: Fix endianness in firmware struct 2022-06-14 18:36:04 +02:00
rapidio
ras
regulator regulator: scmi: Fix refcount leak in scmi_regulator_probe 2022-06-09 10:23:00 +02:00
remoteproc remoteproc: imx_rproc: Ignore create mem entry for resource table 2022-06-14 18:36:03 +02:00
reset reset: tegra-bpmp: Restore Handle errors in BPMP response 2022-04-27 14:38:55 +02:00
rpmsg rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails 2022-06-14 18:36:05 +02:00
rtc rtc: ftrtc010: Fix error handling in ftrtc010_rtc_probe 2022-06-14 18:36:07 +02:00
s390 s390/stp: clock_delta should be signed 2022-06-09 10:23:21 +02:00
sbus
scsi scsi: hisi_sas: Limit max hw sectors for v3 HW 2022-07-21 21:24:34 +02:00
sh
siox
slimbus slimbus: qcom: Fix IRQ check in qcom_slim_probe 2022-05-18 10:26:55 +02:00
soc soc: ixp4xx/npe: Fix unused match warning 2022-07-21 21:24:40 +02:00
soundwire soundwire: qcom: adjust autoenumeration timeout 2022-06-14 18:36:21 +02:00
spi spi: amd: Limit max transfer and message size 2022-07-21 21:24:16 +02:00
spmi
ssb
staging staging: r8188eu: Fix warning of array overflow in ioctl_linux.c 2022-06-22 14:21:59 +02:00
target target: remove an incorrect unmap zeroes data deduction 2022-06-09 10:22:47 +02:00
tc
tee
thermal thermal: devfreq_cooling: use local ops instead of global ops 2022-06-09 10:23:26 +02:00
thunderbolt thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:36:20 +02:00
tty serial: 8250: Fix PM usage_count for console handover 2022-07-21 21:24:43 +02:00
uio
usb usb: dwc3: gadget: Fix event pending check 2022-07-21 21:24:42 +02:00
vdpa vduse: Tie vduse mgmtdev and its device 2022-07-21 21:24:33 +02:00
vfio vfio/pci: Fix vf_token mechanism when device-specific VF drivers are used 2022-04-20 09:34:13 +02:00
vhost vringh: Fix loop descriptors check in the indirect cases 2022-06-14 18:36:24 +02:00
video fbdev: Disable sysfb device registration when removing conflicting FBs 2022-07-21 21:24:35 +02:00
virt virt: acrn: fix a memory leak in acrn_dev_ioctl() 2022-04-08 14:23:50 +02:00
virtio virtio_mmio: Restore guest page size on resume 2022-07-21 21:24:33 +02:00
visorbus
vlynq
vme
w1 w1: w1_therm: fixes w1_seq for ds28ea00 sensors 2022-04-13 20:59:11 +02:00
watchdog watchdog: wdat_wdt: Stop watchdog when rebooting the system 2022-06-14 18:36:22 +02:00
xen xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE 2022-07-21 21:24:23 +02:00
zorro
Kconfig
Makefile