patch "drivers: base: cacheinfo: Ensure cpu hotplug work is done before" added to driver-core-next
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drivers: base: cacheinfo: Ensure cpu hotplug work is done before
to my driver-core git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
in the driver-core-next branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release during the merge window.
If you have any questions about this process, please let me know.
From 83b44fe343b5abfcb1b2261289bd0cfcfcfd60a8 Mon Sep 17 00:00:00 2001
From: James Morse <[email protected]>
Date: Mon, 24 Jun 2019 18:36:56 +0100
Subject: drivers: base: cacheinfo: Ensure cpu hotplug work is done before
Intel RDT
The cacheinfo structures are alloced/freed by cpu online/offline callbacks. Originally these were only used by sysfs to expose the cache topology to user space. Without any in-kernel dependencies CPUHP_AP_ONLINE_DYN was an appropriate choice.
resctrl has started using these structures to identify CPUs that share a cache. It updates its 'domain' structures from cpu online/offline callbacks. These depend on the cacheinfo structures (resctrl_online_cpu()->domain_add_cpu()->get_cache_id()->
get_cpu_cacheinfo()).
These also run as CPUHP_AP_ONLINE_DYN.
Now that there is an in-kernel dependency, move the cacheinfo work earlier so we know its done before resctrl's CPUHP_AP_ONLINE_DYN work runs.
--- drivers/base/cacheinfo.c | 3 ++- include/linux/cpuhotplug.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)
drivers/base/cacheinfo.c +2 -1
@@ -655,7 +655,8 @@ static int cacheinfo_cpu_pre_down(unsigned int cpu)static int __init cacheinfo_sysfs_init (void ) { -return cpuhp_setup_state (CPUHP_AP_ONLINE_DYN ,"base/cacheinfo:online" , +return cpuhp_setup_state (CPUHP_AP_BASE_CACHEINFO_ONLINE , +"base/cacheinfo:online" , cacheinfo_cpu_online, cacheinfo_cpu_pre_down); }device_initcall (cacheinfo_sysfs_init);
include/linux/cpuhotplug.h +1 -0
@@ -175,6 +175,7 @@ enum cpuhp_state {CPUHP_AP_WATCHDOG_ONLINE ,CPUHP_AP_WORKQUEUE_ONLINE ,CPUHP_AP_RCUTREE_ONLINE , +CPUHP_AP_BASE_CACHEINFO_ONLINE ,CPUHP_AP_ONLINE_DYN ,CPUHP_AP_ONLINE_DYN_END =CPUHP_AP_ONLINE_DYN +30 , CPUHP_AP_X86_HPET_ONLINE,
Signature · 1 line
2.22.0