On Wed, Apr 11, 2018 at 09:07:30PM +0200, Sebastian Andrzej Siewior wrote:
> 
> This already happens:
> - vmstat_shepherd() does get_online_cpus() and within this block it does
>   queue_delayed_work_on(). So this has to wait until cpuhotplug
>   completed before it can schedule something and then it won't schedule
>   anything on the "off" CPU.

But can't we have something like this happen: ?

        CPU0                    CPU1                    CPU2
        ----                    ----                    ----
 get_online_cpus()
 queue_work(vmstat_update, cpu1)
    wakeup(kworker/1)
                             High prio task running
 put_online_cpus()
                                                     Shutdown CPU 1
                             migrate kworker/1
 schedule kworker/1
 (smp_processor_id() != 1)

-- Steve

Reply via email to