diff options
| author | Paul E. McKenney <[email protected]> | 2013-09-25 01:29:11 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2013-09-25 02:44:40 +0000 |
| commit | 22356f447ceb8d97a4885792e7d9e4607f712e1b (patch) | |
| tree | 5d19a3ce69f94a92e0e303054f9ed44a826b8b19 /net/unix/af_unix.c | |
| parent | Merge branch 'akpm' (patches from Andrew Morton) (diff) | |
| download | kernel-22356f447ceb8d97a4885792e7d9e4607f712e1b.tar.gz kernel-22356f447ceb8d97a4885792e7d9e4607f712e1b.zip | |
mm: Place preemption point in do_mlockall() loop
There is a loop in do_mlockall() that lacks a preemption point, which
means that the following can happen on non-preemptible builds of the
kernel. Dave Jones reports:
"My fuzz tester keeps hitting this. Every instance shows the non-irq
stack came in from mlockall. I'm only seeing this on one box, but
that has more ram (8gb) than my other machines, which might explain
it.
INFO: rcu_preempt self-detected stall on CPU { 3} (t=6500 jiffies g=470344 c=470343 q=0)
sending NMI to all CPUs:
NMI backtrace for cpu 3
CPU: 3 PID: 29664 Comm: trinity-child2 Not tainted 3.11.0-rc1+ #32
Call Trace:
lru_add_drain_all+0x15/0x20
SyS_mlockall+0xa5/0x1a0
tracesys+0xdd/0xe2"
This commit addresses this problem by inserting the required preemption
point.
Reported-by: Dave Jones <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>
Cc: KOSAKI Motohiro <[email protected]>
Cc: Michel Lespinasse <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
