On 04/03/25 11:01, Waiman Long wrote: > On 3/4/25 10:05 AM, Waiman Long wrote: > > > --- a/kernel/sched/topology.c > > > +++ b/kernel/sched/topology.c > > > @@ -6,6 +6,19 @@ > > > #include <linux/bsearch.h> > > > DEFINE_MUTEX(sched_domains_mutex); > > > +#ifdef CONFIG_SMP > > > +void sched_domains_mutex_lock(void) > > > +{ > > > + mutex_lock(&sched_domains_mutex); > > > +} > > > +void sched_domains_mutex_unlock(void) > > > +{ > > > + mutex_unlock(&sched_domains_mutex); > > > +} > > > +#else > > > +void sched_domains_mutex_lock(void) { } > > > +void sched_domains_mutex_unlock(void) { } > > > +#endif > > > /* Protected by sched_domains_mutex: */ > > > static cpumask_var_t sched_domains_tmpmask; > > > @@ -2791,7 +2804,7 @@ void partition_sched_domains_locked(int > > > ndoms_new, cpumask_var_t doms_new[], > > > void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[], > > > struct sched_domain_attr *dattr_new) > > > { > > > - mutex_lock(&sched_domains_mutex); > > > + sched_domains_mutex_lock(); > > > partition_sched_domains_locked(ndoms_new, doms_new, dattr_new); > > > - mutex_unlock(&sched_domains_mutex); > > > + sched_domains_mutex_unlock(); > > > } > > > > There are two "lockdep_assert_held(&sched_domains_mutex);" statements in > > topology.c file and one in cpuset.c. That can be problematic in the > > non-SMP case. Maybe another wrapper to do the assert? > > Ignore that as both topology.c and cpuset.c will only be compiled if > CONFIG_SMP is defined. IOW, you don't need the the "#ifdef CONFIG_SMP" > above. Indeed! Thanks, Juri