[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170809074337.awcwac6u2cxr5h2m@hirez.programming.kicks-ass.net>
Date: Wed, 9 Aug 2017 09:43:37 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Yafang Shao <laoar.shao@...il.com>
Cc: mingo@...hat.com, gregkh@...uxfoundation.org, jslaby@...e.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] scheduler: enhancement to show_state_filter and SysRq
On Wed, Aug 09, 2017 at 06:31:28PM +0800, Yafang Shao wrote:
> Sometimes we want to get tasks in TASK_RUNNING sepcifically,
> instead of dump all tasks.
>
> For example, when the loadavg are high, we want to dump
> tasks in TASK_RUNNING and TASK_UNINTERRUPTIBLE, which contribute
> to system load. But mostly there're lots of tasks in Sleep state,
> which occupies almost all of the kernel log buffer, even overflows
> it, that causes the useful messages get lost. Although we can
> enlarge the kernel log buffer, but that's not a good idea.
That's what you have serial consoles for...
> +static void sysrq_handle_showstate_load(int key)
> {
> + show_state_filter(TASK_UNINTERRUPTIBLE << 1 | (TASK_RUNNING | 0x1));
> }
How is that not unreadable gunk?
> @@ -477,7 +478,7 @@ static void sysrq_handle_unrt(int key)
> &sysrq_mountro_op, /* u */
> /* v: May be registered for frame buffer console restore */
> NULL, /* v */
> - &sysrq_showstate_blocked_op, /* w */
> + &sysrq_showstate_load_op, /* w */
> /* x: May be registered on mips for TLB dump */
> /* x: May be registered on ppc/powerpc for xmon */
> /* x: May be registered on sparc64 for global PMU dump */
So I'm really not convinced this is useful. The blocked thing is very
useful if you're trying to debug a deadlock. Now you get endless clutter
with runnable tasks.
High load-avg as such isn't a problem. Why do you care?
Powered by blists - more mailing lists