linux/arch
Reinette Chatre 80b71c340f x86/intel_rdt: Ensure a CPU remains online for the region's pseudo-locking sequence
The user triggers the creation of a pseudo-locked region when writing
the requested schemata to the schemata resctrl file. The pseudo-locking
of a region is required to be done on a CPU that is associated with the
cache on which the pseudo-locked region will reside. In order to run the
locking code on a specific CPU, the needed CPU has to be selected and
ensured to remain online during the entire locking sequence.

At this time, the cpu_hotplug_lock is not taken during the pseudo-lock
region creation and it is thus possible for a CPU to be selected to run
the pseudo-locking code and then that CPU to go offline before the
thread is able to run on it.

Fix this by ensuring that the cpu_hotplug_lock is taken while the CPU on
which code has to run needs to be controlled. Since the cpu_hotplug_lock
is always taken before rdtgroup_mutex the lock order is maintained.

Fixes: e0bdfe8e36 ("x86/intel_rdt: Support creation/removal of pseudo-locked region")
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: gavin.hindman@intel.com
Cc: jithu.joseph@intel.com
Cc: stable <stable@vger.kernel.org>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/b7b17432a80f95a1fa21a1698ba643014f58ad31.1544476425.git.reinette.chatre@intel.com
2018-12-11 21:59:01 +01:00
..
alpha TTY/Serial fixes for 4.20-rc2 2018-11-10 13:32:14 -06:00
arc mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
arm ARM: SoC fixes 2018-12-02 12:19:44 -08:00
arm64 ARM: SoC fixes 2018-12-02 12:19:44 -08:00
c6x c6x changes for 4.20 2018-10-31 15:39:25 -07:00
csky csky: dtb Kbuild fixup patches for linux-4.20-rc1 2018-11-01 09:04:30 -07:00
h8300 mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
hexagon mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
ia64 ia64: export node_distance function 2018-11-26 18:30:40 -08:00
m68k s390 updates for 4.20-rc2 2018-11-09 06:30:44 -06:00
microblaze microblaze: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:18 -05:00
mips A few more MIPS fixes for 4.20: 2018-11-30 18:41:06 -08:00
nds32 nds32: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:43 -05:00
nios2 mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
openrisc mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
parisc parisc: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:52 -05:00
powerpc While rewriting the function graph tracer, I discovered a design flaw that 2018-11-30 09:32:34 -08:00
riscv While rewriting the function graph tracer, I discovered a design flaw that 2018-11-30 09:32:34 -08:00
s390 While rewriting the function graph tracer, I discovered a design flaw that 2018-11-30 09:32:34 -08:00
sh sh/function_graph: Simplify with function_graph_enter() 2018-11-27 20:31:39 -05:00
sparc While rewriting the function graph tracer, I discovered a design flaw that 2018-11-30 09:32:34 -08:00
um for-linus-20181109 2018-11-09 16:31:51 -06:00
unicore32 memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
x86 x86/intel_rdt: Ensure a CPU remains online for the region's pseudo-locking sequence 2018-12-11 21:59:01 +01:00
xtensa xtensa: fix coprocessor part of ptrace_{get,set}xregs 2018-11-26 18:37:51 -08:00
.gitignore
Kconfig New gcc plugin: stackleak 2018-11-01 11:46:27 -07:00