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?

Reply via email to