Messages in this thread | | | Subject | Re: [PATCH] kernel/hung_task.c: force ignore_loglevel before panic | From | Tetsuo Handa <> | Date | Mon, 10 Dec 2018 18:58:46 +0900 |
| |
On 2018/12/10 15:11, Sergey Senozhatsky wrote: > On (12/10/18 05:58), Liu, Chuansheng wrote: >>> On (12/10/18 05:40), Liu, Chuansheng wrote: >>>> @@ -130,6 +130,13 @@ static void check_hung_task(struct task_struct *t, >>> unsigned long timeout) >>>> init_utsname()->version); >>>> pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" >>>> " disables this message.\n"); >>>> + /* When sysctl_hung_task_panic is set, we have to force >>>> + * ignore_loglevel to get really useful hung task >>>> + * information. >>>> + */ >>>> + if (sysctl_hung_task_panic && !ignore_loglevel) >>>> + ignore_loglevel = true; >>> >>> console_verbose()? >> >> Thanks Sergey, it is really my need. I will prepare for a new version of patch:) > > Let's wait for people to take a look at this patch first.
Shouldn't console_verbose() be called like
- if (!sysctl_hung_task_warnings && !sysctl_hung_task_panic) + if (sysctl_hung_task_panic) + console_verbose(); + else if (!sysctl_hung_task_warnings) return;
or
- if (!sysctl_hung_task_warnings && !sysctl_hung_task_panic) - return; + if (sysctl_hung_task_panic) + console_verbose();
or
- if (!sysctl_hung_task_warnings && !sysctl_hung_task_panic) - return; + if (sysctl_hung_task_panic) { + console_verbose(); + hung_task_show_lock = true; + hung_task_call_panic = true; + } (...snipped...) - if (sysctl_hung_task_panic) { - hung_task_show_lock = true; - hung_task_call_panic = true; - }
so that sysctl_hung_task_warnings == 0 && sysctl_hung_task_panic == 1 will call debug_show_all_locks() and trigger_all_cpu_backtrace() with verbose level?
| |