Re: [PACTH v1] kernel/hung_task.c: Dump all UNINTERUPTIBLE tasks

Robert Foss
2016-08-29T19:05:00Z

On 2016-08-11 12:35 PM, Robert Foss wrote:
>
>
> On 2016-08-10 06:43 PM, Andrew Morton wrote:
>> On Tue, 2 Aug 2016 11:23:11 -0400 robert.foss@collabora.com wrote:
>>
>>> From: Aaron Durbin <adurbin@chromium.org>
>>>
>>> When the panic path is taken for khungtaskd dump all
>>> tasks with the UNINTERUPTIBLE state. That way, any
>>> inter-dependent tasks that caused one another to hang
>>> will be saved in the crash output.
>>>
>>> ...
>>>
>>> --- a/kernel/hung_task.c
>>> +++ b/kernel/hung_task.c
>>> @@ -122,6 +122,8 @@ static void check_hung_task(struct task_struct
>>> *t, unsigned long timeout)
>>> touch_nmi_watchdog();
>>>
>>> if (sysctl_hung_task_panic) {
>>> + /* Dump all tasks. */
>>> + show_state_filter(TASK_UNINTERRUPTIBLE);
>>> trigger_all_cpu_backtrace();
>>> panic("hung_task: blocked tasks");
>>> }
>>
>> Well, it's going to produce more gunk for the operator to read through
>> and understand.
>>
>> I'd like to hear a little more about the value of this change: what
>> particular problem prompted it, etc.
>>
>
> It would indeed provide more gunk. What makes it useful is that is on
> enabled by default and enables rapid debugging of devices that are not
> physically accessible or accessible for debugging otherwise.
>
> So the primary usecase would be when a user of a device is seeing some
> issues and submits the logs from the device.
> Without any further action from the user, the problem could potentially
> be solved.

The debug output could be formatted better, would that make this patch
more appealing?