Re: [lkp] [sched/core] 4fa5cd5245: BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97

From: Peter Zijlstra
Date: Fri Sep 30 2016 - 06:36:01 EST


On Fri, Sep 30, 2016 at 09:51:02AM +0800, kernel test robot wrote:
>
> FYI, we noticed the following commit:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> commit 4fa5cd5245b627db88c9ca08ae442373b02596b4 ("sched/core: Do not use smp_processor_id() with preempt enabled in smpboot_thread_fn()")
>

So its perfectly ok to use smp_processor_id() in preemptible context,
assuming the task is pinned to one cpu.

smpboot threads are per definition per-cpu threads, those are bound to a
specific CPU and affinity cannot be changed by userspace.