On Fri, 2019-12-06 at 20:39 +0100, Daniel Wagner wrote: > Hi Scott, > > On Fri, Dec 06, 2019 at 12:49:12PM -0600, Scott Wood wrote: > > On Fri, 2019-12-06 at 15:21 +0100, Daniel Wagner wrote: > > > In case the kernel configuration is UP is, the migrate_disable member > > > in task_struct is missing. > > > > > > linux/lib/smp_processor_id.c: In function ‘check_preemption_disabled’: > > > linux/lib/smp_processor_id.c:26:13: error: ‘struct task_struct’ has no > > > member named ‘migrate_disable’ > > > 26 | if (current->migrate_disable) > > > | ^~ > > > > > > Fixes: 425c5b38779a ("sched: Lazy migrate_disable processing") > > > Cc: Scott Wood <swood@xxxxxxxxxx> > > > Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > > > Signed-off-by: Daniel Wagner <dwagner@xxxxxxx> > > > --- > > > lib/smp_processor_id.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c > > > index 5f2618d346c4..a914f73e3652 100644 > > > --- a/lib/smp_processor_id.c > > > +++ b/lib/smp_processor_id.c > > > @@ -23,8 +23,10 @@ unsigned int check_preemption_disabled(const char > > > *what1, const char *what2) > > > * Kernel threads bound to a single CPU can safely use > > > * smp_processor_id(): > > > */ > > > +#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) > > > if (current->migrate_disable) > > > goto out; > > > +#endif > > > > Won't this give false positives on UP with CONFIG_PREEMPT_RT_BASE and > > CONFIG_DEBUG_PREEMPT? If we have CONFIG_SCHED_DEBUG then we can still > > check > > migrate_disable. > > Ohhh, I see what you mean. I didn't realize that migrate_disable is > also available with CONFIG_SCHED_DEBUG. So the ifdef should be > something like: > > #if defined(CONFIG_PREEMP_RT_BASE) && \ > (defined(CONFIG_SMP) || \ > (!defined(CONFIG_SMP) && defined(CONFIG_SCHED_DEBUG))) That would still leave the issue with false positives if you have CONFIG_DEBUG_PREEMPT but not CONFIG_SCHED_DEBUG (which should be the only config currently experiencing build problems). -Scott