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.

sched/topology: Wrappers for sched_domains_mutex

Create wrappers for sched_domains_mutex so that it can transparently be
used on both CONFIG_SMP and !CONFIG_SMP, as some function will need to
do.

Fixes: 53916d5fd3c0 ("sched/deadline: Check bandwidth overflow earlier for hotplug")
Reported-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Tested-by: Waiman Long <longman@redhat.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Link: https://lore.kernel.org/r/Z9MP5Oq9RB8jBs3y@jlelli-thinkpadt14gen4.remote.csb

authored by

Juri Lelli and committed by
Peter Zijlstra
56209334 f6147af1

+23 -10
+5
include/linux/sched.h
··· 382 382 #ifdef CONFIG_SMP 383 383 extern struct root_domain def_root_domain; 384 384 extern struct mutex sched_domains_mutex; 385 + extern void sched_domains_mutex_lock(void); 386 + extern void sched_domains_mutex_unlock(void); 387 + #else 388 + static inline void sched_domains_mutex_lock(void) { } 389 + static inline void sched_domains_mutex_unlock(void) { } 385 390 #endif 386 391 387 392 struct sched_param {
+2 -2
kernel/cgroup/cpuset.c
··· 994 994 partition_and_rebuild_sched_domains(int ndoms_new, cpumask_var_t doms_new[], 995 995 struct sched_domain_attr *dattr_new) 996 996 { 997 - mutex_lock(&sched_domains_mutex); 997 + sched_domains_mutex_lock(); 998 998 partition_sched_domains_locked(ndoms_new, doms_new, dattr_new); 999 999 dl_rebuild_rd_accounting(); 1000 - mutex_unlock(&sched_domains_mutex); 1000 + sched_domains_mutex_unlock(); 1001 1001 } 1002 1002 1003 1003 /*
+2 -2
kernel/sched/core.c
··· 8470 8470 * CPU masks are stable and all blatant races in the below code cannot 8471 8471 * happen. 8472 8472 */ 8473 - mutex_lock(&sched_domains_mutex); 8473 + sched_domains_mutex_lock(); 8474 8474 sched_init_domains(cpu_active_mask); 8475 - mutex_unlock(&sched_domains_mutex); 8475 + sched_domains_mutex_unlock(); 8476 8476 8477 8477 /* Move init over to a non-isolated CPU */ 8478 8478 if (set_cpus_allowed_ptr(current, housekeeping_cpumask(HK_TYPE_DOMAIN)) < 0)
+4 -4
kernel/sched/debug.c
··· 294 294 bool orig; 295 295 296 296 cpus_read_lock(); 297 - mutex_lock(&sched_domains_mutex); 297 + sched_domains_mutex_lock(); 298 298 299 299 orig = sched_debug_verbose; 300 300 result = debugfs_write_file_bool(filp, ubuf, cnt, ppos); ··· 306 306 sd_dentry = NULL; 307 307 } 308 308 309 - mutex_unlock(&sched_domains_mutex); 309 + sched_domains_mutex_unlock(); 310 310 cpus_read_unlock(); 311 311 312 312 return result; ··· 517 517 debugfs_create_u32("migration_cost_ns", 0644, debugfs_sched, &sysctl_sched_migration_cost); 518 518 debugfs_create_u32("nr_migrate", 0644, debugfs_sched, &sysctl_sched_nr_migrate); 519 519 520 - mutex_lock(&sched_domains_mutex); 520 + sched_domains_mutex_lock(); 521 521 update_sched_domain_debugfs(); 522 - mutex_unlock(&sched_domains_mutex); 522 + sched_domains_mutex_unlock(); 523 523 #endif 524 524 525 525 #ifdef CONFIG_NUMA_BALANCING
+10 -2
kernel/sched/topology.c
··· 6 6 #include <linux/bsearch.h> 7 7 8 8 DEFINE_MUTEX(sched_domains_mutex); 9 + void sched_domains_mutex_lock(void) 10 + { 11 + mutex_lock(&sched_domains_mutex); 12 + } 13 + void sched_domains_mutex_unlock(void) 14 + { 15 + mutex_unlock(&sched_domains_mutex); 16 + } 9 17 10 18 /* Protected by sched_domains_mutex: */ 11 19 static cpumask_var_t sched_domains_tmpmask; ··· 2799 2791 void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[], 2800 2792 struct sched_domain_attr *dattr_new) 2801 2793 { 2802 - mutex_lock(&sched_domains_mutex); 2794 + sched_domains_mutex_lock(); 2803 2795 partition_sched_domains_locked(ndoms_new, doms_new, dattr_new); 2804 - mutex_unlock(&sched_domains_mutex); 2796 + sched_domains_mutex_unlock(); 2805 2797 }