Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-06 Thread Tetsuo Handa
On 2019/02/07 1:23, Guenter Roeck wrote: > On Wed, Feb 06, 2019 at 11:57:45PM +0900, Tetsuo Handa wrote: >> On 2019/02/06 23:36, Guenter Roeck wrote: >>> On Wed, Feb 06, 2019 at 03:31:09PM +0900, Tetsuo Handa wrote: (Adding linux-arch ML.) Rusty Russell wrote: > Tetsuo Handa

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-06 Thread Guenter Roeck
On Wed, Feb 06, 2019 at 11:57:45PM +0900, Tetsuo Handa wrote: > On 2019/02/06 23:36, Guenter Roeck wrote: > > On Wed, Feb 06, 2019 at 03:31:09PM +0900, Tetsuo Handa wrote: > >> (Adding linux-arch ML.) > >> > >> Rusty Russell wrote: > >>> Tetsuo Handa writes: > (Adding Chris Metcalf and Rusty

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-06 Thread Tetsuo Handa
On 2019/02/06 23:36, Guenter Roeck wrote: > On Wed, Feb 06, 2019 at 03:31:09PM +0900, Tetsuo Handa wrote: >> (Adding linux-arch ML.) >> >> Rusty Russell wrote: >>> Tetsuo Handa writes: (Adding Chris Metcalf and Rusty Russell.) If NR_CPUS == 1 due to CONFIG_SMP=n, for_each_cpu(cpu,

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-06 Thread Guenter Roeck
On Wed, Feb 06, 2019 at 03:31:09PM +0900, Tetsuo Handa wrote: > (Adding linux-arch ML.) > > Rusty Russell wrote: > > Tetsuo Handa writes: > > > (Adding Chris Metcalf and Rusty Russell.) > > > > > > If NR_CPUS == 1 due to CONFIG_SMP=n, for_each_cpu(cpu, _work) loop > > > does not > > > evaluate

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-05 Thread Tetsuo Handa
(Adding linux-arch ML.) Rusty Russell wrote: > Tetsuo Handa writes: > > (Adding Chris Metcalf and Rusty Russell.) > > > > If NR_CPUS == 1 due to CONFIG_SMP=n, for_each_cpu(cpu, _work) loop does > > not > > evaluate "struct cpumask has_work" modified by cpumask_set_cpu(cpu, > > _work) at > >

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-05 Thread Rusty Russell
Tetsuo Handa writes: > (Adding Chris Metcalf and Rusty Russell.) > > If NR_CPUS == 1 due to CONFIG_SMP=n, for_each_cpu(cpu, _work) loop does > not > evaluate "struct cpumask has_work" modified by cpumask_set_cpu(cpu, > _work) at > previous for_each_online_cpu() loop. Guenter Roeck found a

Re: linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-02 Thread Tetsuo Handa
(Adding Chris Metcalf and Rusty Russell.) If NR_CPUS == 1 due to CONFIG_SMP=n, for_each_cpu(cpu, _work) loop does not evaluate "struct cpumask has_work" modified by cpumask_set_cpu(cpu, _work) at previous for_each_online_cpu() loop. Guenter Roeck found a problem among three commits listed below.

linux-next: tracebacks in workqueue.c/__flush_work()

2019-02-02 Thread Guenter Roeck
Commit "workqueue: Try to catch flush_work() without INIT_WORK()" added a warning if flush_work() is called without worker function. This results in the following tracebacks, typically observed during system shutdown. [ cut here ] WARNING: CPU: 0 PID: 101 at