Re: [PATCH 1/1] watchdog: avoid extra sys_info dumps for all_bt

From: Bradley Morgan

Date: Mon Jun 22 2026 - 10:56:15 EST


On June 22, 2026 8:37:51 AM GMT+01:00, Feng Tang
<feng.tang@xxxxxxxxxxxxxxxxx> wrote:
>On Mon, Jun 22, 2026 at 07:30:18AM +0100, Bradley Morgan wrote:
>> On June 22, 2026 4:23:00 AM GMT+01:00, Feng Tang
>> <feng.tang@xxxxxxxxxxxxxxxxx> wrote:
>> >Hi,
>> >
>> >On Sat, Jun 20, 2026 at 10:01:40PM +0000, Bradley Morgan wrote:
>> >> The watchdog handles SYS_INFO_ALL_BT itself. When that is the only
>> >> watchdog specific bit, sys_info(0) falls back to kernel_sys_info.
>> >>
>> >> Skip sys_info() for that case.
>> >
>> >Thanks for the patch!
>> >
>> >I would explain some about he intention of the global 'kernel_sys_info'
>> >which was suggested by Andrew. One use case is, for kernel stability
>> >issues, it could be panic, soft/hard lockup, task-hung etc, and we now
>> >have different conrol knobs for them each, but with similar
>'xxx_sys_info'
>> >capability, and they actually need similar system info like all-cpu
>> >dump, blocked processes dump, debug ftrace dump, using one central
>> >'kernel_sys_info' could be very handy by avoiding setting many knobs.
>> >And for debugging random issues, you can just add sys_info(0)
>> >everywhere, and controll it by the existing 'kernel_si_mask'
>> >
>> >btw, did you meet some issues with current code? If yes, could you
>> >agive some more details ? IIUC, when 'kernel_si_mask' is not set
>> >specifically, sys_info(0) is a nop.
>> >
>> >Thanks,
>> >Feng
>>
>> Feng!
>>
>> I see what you are saying, but there is a "double ended sword"! :)
>>
>> Unfortunately. The issue is where the watchdog specific mask is
>> explicitly set to ONLY all_bt for instance.
>>
>> The watchdog only handles SYS_INFO_ALL_BT.
>>
>> ↓
>>
>> so the later call becomes sys_info(0).
>>
>> At that point sys_info() cannot tell that the caller had a nonzero
>> watchdog mask, and it falls back to kernel_sys_info.
>>
>>
>> Here is a example where this would be reached:
>>
>> kernel.kernel_sys_info=tasks,mem kernel.hardlockup_sys_info=all_bt
>>
>> a hard lockup still dumps tasks and memory through the global default.
>
>Thanks for providing the case. I cannot say this is not a valid case :),
>so I'm not against your patch, and would listen to other developers'
>opinions.
>
>Thanks,
>Feng

Thanks Feng!

>>
>> I expected hardlockup_sys_info to override the global default once it
>> is explicitly set IMHO.
>>
>> IF hardlockup_sys_info is empty..
>>
>> This patch keeps the existing fallback! :)
>>
>> So the **bug** is not sys_info(0) itself.
>>
>> but the watchdog turning an explicit
>> all_bt ONLY mask into zero after handling all_bt locally.
>>
>> What do you think Feng? Is this good to you? :)
>>
>> Cheers!
>>
>> >> Fixes: a9af76a78760 ("watchdog: add sys_info sysctls to dump sys info
>on
>> >system lockup")
>> >> Signed-off-by: Bradley Morgan <include@xxxxxxxxx>
>

Thanks!