Re: [linux-next:master 9966/13055] kernel/watchdog.c:74:22: warning: unused variable 'hardlockup_si_mask'

Feng Tang
2025-12-04T13:57:29Z

On Wed, Dec 03, 2025 at 02:44:53PM -0800, Andrew Morton wrote:
> On Wed, 3 Dec 2025 09:05:30 +0800 kernel test robot <lkp@intel.com> wrote:
>
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head: 47b7b5e32bb7264b51b89186043e1ada4090b558
> > commit: a9af76a78760717361cccc884dc649e30db61c8b [9966/13055] watchdog: add sys_info sysctls to dump sys info on system lockup
> > config: powerpc64-randconfig-002-20251203 (https://download.01.org/0day-ci/archive/20251203/202512030920.NFKtekA7-lkp@intel.com/config)
> > compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 734a912d0f025559fcf76bde9aaaeb0383c1625a)
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251203/202512030920.NFKtekA7-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202512030920.NFKtekA7-lkp@intel.com/
> >
> > All warnings (new ones prefixed by >>):
> >
> > >> kernel/watchdog.c:74:22: warning: unused variable 'hardlockup_si_mask' [-Wunused-variable]
> > 74 | static unsigned long hardlockup_si_mask;
> > | ^~~~~~~~~~~~~~~~~~
> > 1 warning generated.
>
> I'm testing the appended patch but it needs checking please.
>
> The comment for hardlockup_si_mask says
>
> * bitmask to control what kinds of system info to be printed when
> * hard lockup is detected, it could be task, memory, lock etc.
> * Refer include/linux/sys_info.h for detailed bit definition.
>
> but the variable depends on "COUNTS_HRTIMER". The comment doesn't
> mention hrtimers and I don't see why it should. Not sure what's going
> on here.

Yes, it is a little weird. Logically the 'hardlockup_si_mask' should be
under the CONFIG_HARDLOCKUP_DETECTOR, which is what my original patch did.

I did a quick check, and there are 3 types of hardlockup detector:

HARDLOCKUP_DETECTOR_PERF
HARDLOCKUP_DETECTOR_BUDDY
HARDLOCKUP_DETECTOR_ARCH

IIUC, most archs will use the first 2 types, which will both select
HARDLOCKUP_DETECTOR_COUNTS_HRTIMER (lib/Kconfig.debug), which is kind of
a _proxy_ to select SOFTLOCKUP_DETECTOR which needs hrtimer for its
implementations.

And only very few arch may chose the 3rd architecture specific implementation,
which was in 0day bot's kernel config.

In arch/powerpc/Kconfig
select HAVE_HARDLOCKUP_DETECTOR_ARCH if PPC_BOOK3S_64 && SMP
select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI

In short, for most cases the hrtimer is used for soft/hard lockup detector.

Thanks,
Feng