Re: [PATCH/for-next v3 3/3] cgroup/cpuset: Call housekeeping_update() without holding cpus_read_lock
From: Waiman Long
Date: Tue Feb 03 2026 - 23:47:35 EST
On 2/3/26 9:51 PM, Chen Ridong wrote:
Good catch. I haven't set up "isolcpus" in my test environment. That is why this lockdep splat didn't get triggered. I will fix that in the next version.
On 2026/2/3 4:11, Waiman Long wrote:
--- a/kernel/time/timer_migration.cIt may lead to lockdep issue.
+++ b/kernel/time/timer_migration.c
@@ -1559,8 +1559,6 @@ int tmigr_isolated_exclude_cpumask(struct cpumask *exclude_cpumask)
cpumask_var_t cpumask __free(free_cpumask_var) = CPUMASK_VAR_NULL;
int cpu;
- lockdep_assert_cpus_held();
-
if (!works)
return -ENOMEM;
if (!alloc_cpumask_var(&cpumask, GFP_KERNEL))
@@ -1570,6 +1568,7 @@ int tmigr_isolated_exclude_cpumask(struct cpumask *exclude_cpumask)
* First set previously isolated CPUs as available (unisolate).
* This cpumask contains only CPUs that switched to available now.
*/
+ guard(cpus_read_lock)();
cpumask_andnot(cpumask, cpu_online_mask, exclude_cpumask);
cpumask_andnot(cpumask, cpumask, tmigr_available_cpumask);
tmigr_init_isolation
guard(cpus_read_lock)()
tmigr_isolated_exclude_cpumask(cpumask)
guard(cpus_read_lock)()
Cheers,
Longman