提交 39bc89fd 编写于 作者: I Ingo Molnar 提交者: Linus Torvalds

make SysRq-T show all tasks again

show_state() (SysRq-T) developed the buggy habbit of not showing
TASK_RUNNING tasks.  This was due to the mistaken belief that state_filter
== -1 would be a pass-through filter - while in reality it did not let
TASK_RUNNING == 0 p->state values through.

Fix this by restoring the original '!state_filter means all tasks'
special-case i had in the original version.  Test-built and test-booted on
i686, SysRq-T now works as intended.
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 20f09390
......@@ -196,13 +196,13 @@ extern void init_idle(struct task_struct *idle, int cpu);
extern cpumask_t nohz_cpu_mask;
/*
* Only dump TASK_* tasks. (-1 for all tasks)
* Only dump TASK_* tasks. (0 for all tasks)
*/
extern void show_state_filter(unsigned long state_filter);
static inline void show_state(void)
{
show_state_filter(-1);
show_state_filter(0);
}
extern void show_regs(struct pt_regs *);
......
......@@ -4746,7 +4746,7 @@ void show_state_filter(unsigned long state_filter)
* console might take alot of time:
*/
touch_nmi_watchdog();
if (p->state & state_filter)
if (!state_filter || (p->state & state_filter))
show_task(p);
} while_each_thread(g, p);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册