linux/arch
Balbir Singh e893bb1bb4 x86, prctl: Hook L1D flushing in via prctl
Use the existing PR_GET/SET_SPECULATION_CTRL API to expose the L1D flush
capability. For L1D flushing PR_SPEC_FORCE_DISABLE and
PR_SPEC_DISABLE_NOEXEC are not supported.

Enabling L1D flush does not check if the task is running on an SMT enabled
core, rather a check is done at runtime (at the time of flush), if the task
runs on a SMT sibling then the task is sent a SIGBUS which is executed
before the task returns to user space or to a guest.

This is better than the other alternatives of:

  a. Ensuring strict affinity of the task (hard to enforce without further
     changes in the scheduler)

  b. Silently skipping flush for tasks that move to SMT enabled cores.

Hook up the core prctl and implement the x86 specific parts which in turn
makes it functional.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Balbir Singh <sblbir@amazon.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210108121056.21940-5-sblbir@amazon.com
2021-07-28 11:42:25 +02:00
..
alpha Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
arc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
arm ARM: SoC fixes for v5.14 2021-07-17 15:58:24 -07:00
arm64 USB fixes for 5.14-rc3 2021-07-23 10:09:27 -07:00
csky Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
h8300 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
hexagon Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
ia64 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
m68k m68k: MAC should select HAVE_PATA_PLATFORM 2021-07-19 12:18:42 +02:00
microblaze Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
mips Merge tag 'kvm-s390-master-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD 2021-07-14 12:14:27 -04:00
nds32 nds32: fix up stack guard gap 2021-07-21 15:51:37 +02:00
nios2 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
openrisc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
parisc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
powerpc powerpc fixes for 5.14 #3 2021-07-25 10:33:48 -07:00
riscv riscv: __asm_copy_to-from_user: Fix: Typos in comments 2021-07-23 17:49:12 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-07-22 10:11:27 -07:00
sh Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
sparc Locking fixes: 2021-07-11 11:06:09 -07:00
um Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
x86 x86, prctl: Hook L1D flushing in via prctl 2021-07-28 11:42:25 +02:00
xtensa Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
Kconfig sched: Add task_work callback for paranoid L1D flush 2021-07-28 11:42:24 +02:00