Ingo Molnar 67f2de0bf9 x86: dumpstack, 64-bit: Disable preemption when walking the IRQ/exception stacks
This warning:

[  847.140022] rb_producer   D 0000000000000000  5928   519      2 0x00000000
[  847.203627] BUG: using smp_processor_id() in preemptible [00000000] code: khungtaskd/517
[  847.207360] caller is show_stack_log_lvl+0x2e/0x241
[  847.210364] Pid: 517, comm: khungtaskd Not tainted 2.6.32-rc8-tip+ #13761
[  847.213395] Call Trace:
[  847.215847]  [<ffffffff81413bde>] debug_smp_processor_id+0x1f0/0x20a
[  847.216809]  [<ffffffff81015eae>] show_stack_log_lvl+0x2e/0x241
[  847.220027]  [<ffffffff81018512>] show_stack+0x1c/0x1e
[  847.223365]  [<ffffffff8107b7db>] sched_show_task+0xe4/0xe9
[  847.226694]  [<ffffffff8112f21f>] check_hung_task+0x140/0x199
[  847.230261]  [<ffffffff8112f4a8>] check_hung_uninterruptible_tasks+0x1b7/0x20f
[  847.233371]  [<ffffffff8112f500>] ? watchdog+0x0/0x50
[  847.236683]  [<ffffffff8112f54e>] watchdog+0x4e/0x50
[  847.240034]  [<ffffffff810cee56>] kthread+0x97/0x9f
[  847.243372]  [<ffffffff81012aea>] child_rip+0xa/0x20
[  847.246690]  [<ffffffff81e43494>] ? restore_args+0x0/0x30
[  847.250019]  [<ffffffff81e43083>] ? _spin_lock+0xe/0x10
[  847.253351]  [<ffffffff810cedbf>] ? kthread+0x0/0x9f
[  847.256833]  [<ffffffff81012ae0>] ? child_rip+0x0/0x20

Happens because on preempt-RCU, khungd calls show_stack() with
preemption enabled.

Make sure we are not preemptible while walking the IRQ and exception
stacks on 64-bit. (32-bit stack dumping is preemption safe.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-11-26 08:29:10 +01:00
..
2009-03-15 07:03:15 +01:00
2009-06-15 15:20:40 +02:00
2009-07-19 18:27:51 +02:00
2009-03-13 11:57:22 +01:00
2009-06-20 17:53:13 +02:00
2009-07-11 10:17:08 +02:00
2009-08-31 11:09:40 +02:00
2009-08-31 11:09:40 +02:00
2008-12-12 11:08:42 +01:00
2009-02-10 13:13:23 +01:00
2009-02-23 00:08:11 +01:00
2009-03-21 16:57:04 +05:30
2009-08-09 22:28:34 +02:00
2009-02-09 12:16:05 +01:00
2009-10-15 08:07:30 +02:00
2009-03-21 16:55:45 +05:30
2009-09-24 09:34:52 +09:30
2009-09-19 00:11:26 -04:00
2009-02-23 00:08:11 +01:00
2009-08-31 11:09:40 +02:00
2009-01-20 17:14:28 +01:00
2009-07-14 16:25:05 +02:00
2009-09-15 15:08:40 -04:00
2009-07-19 18:27:51 +02:00
2008-10-22 22:55:23 -07:00
2009-03-21 16:55:24 +05:30
2009-09-20 20:25:03 +02:00
2009-02-17 17:52:44 +01:00