Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

cpu: Provide lockdep check for CPU hotplug lock write-held

cpuset modifies partitions, including isolated, while holding the cpu
hotplug lock read-held.

This means that write-holding the CPU hotplug lock is safe to
synchronize against housekeeping cpumask changes.

Provide a lockdep check to validate that.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Marco Crivellari <marco.crivellari@suse.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Waiman Long <longman@redhat.com>
Cc: linux-kernel@vger.kernel.org

+7
+1
include/linux/cpuhplock.h
··· 13 13 struct device; 14 14 15 15 extern int lockdep_is_cpus_held(void); 16 + extern int lockdep_is_cpus_write_held(void); 16 17 17 18 #ifdef CONFIG_HOTPLUG_CPU 18 19 void cpus_write_lock(void);
+1
include/linux/percpu-rwsem.h
··· 161 161 __percpu_init_rwsem(sem, #sem, &rwsem_key); \ 162 162 }) 163 163 164 + #define percpu_rwsem_is_write_held(sem) lockdep_is_held_type(sem, 0) 164 165 #define percpu_rwsem_is_held(sem) lockdep_is_held(sem) 165 166 #define percpu_rwsem_assert_held(sem) lockdep_assert_held(sem) 166 167
+5
kernel/cpu.c
··· 534 534 { 535 535 return percpu_rwsem_is_held(&cpu_hotplug_lock); 536 536 } 537 + 538 + int lockdep_is_cpus_write_held(void) 539 + { 540 + return percpu_rwsem_is_write_held(&cpu_hotplug_lock); 541 + } 537 542 #endif 538 543 539 544 static void lockdep_acquire_cpus_lock(void)