All of lore.kernel.org
 help / color / mirror / Atom feed
* mod_delayed_work()  explosion due to  874bbfe6
@ 2016-02-02 14:44 Mike Galbraith
  2016-02-03 14:37 ` Michal Hocko
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Mike Galbraith @ 2016-02-02 14:44 UTC (permalink / raw)
  To: Tejun Heo; +Cc: LKML

Hi Tejun,

I'm looking at a crash analysis that fingers 874bbfe6 as being the
culprit.  (I didn't do the analysis, but it appears to be correct)

Scenario: CPU168 calls mod_delayed_work(), is taken offline before the
timer expires.  Due to 874bbfe6, dwork->cpu is the now offline CPU168
vs the previous WORK_CPU_UNBOUND, timer fires on CPU131, it tries to
__queue_work() with cpu == the now offline CPU168, gets to...

        } else
                pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));

... and goes boom.

<snippet>
crash> p numa_node | grep 168
  [168]: ffff8c03fdf0e328
crash> rd ffff8c03fdf0e328
ffff8c03fdf0e328:  00000000ffffffff                    ........

Thus, pwq becomes 000000000. Then, as the result of reference to
pwq->pool, NULL reference occurs at (*PANIC).
</snippet>

What if anything is supposed to prevent this?

	-Mike

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-02-15 21:02 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-02 14:44 mod_delayed_work() explosion due to 874bbfe6 Mike Galbraith
2016-02-03 14:37 ` Michal Hocko
2016-02-03 16:32 ` Tejun Heo
2016-02-03 18:54 ` [PATCH wq/for-4.5-fixes] workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup Tejun Heo
2016-02-03 18:55   ` Tejun Heo
2016-02-04  3:15     ` Mike Galbraith
2016-02-03 19:12   ` Thomas Gleixner
2016-02-03 19:28     ` Tejun Heo
2016-02-04  2:12       ` Mike Galbraith
2016-02-04  8:40   ` Michal Hocko
2016-02-10 15:55   ` Tejun Heo
2016-02-15 17:33     ` Michal Hocko
2016-02-15 18:21       ` Tejun Heo
2016-02-15 20:54         ` Michal Hocko
2016-02-15 21:02           ` Tejun Heo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.