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

Feng Tang
2025-12-04T14:12:47Z

On Thu, Dec 04, 2025 at 02:38:42PM +0100, Petr Mladek wrote:
> On Wed 2025-12-03 14:44:53, 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.
>
> Good point! It took me some time to understand it.
>
> So, powerpc implements its own watchog, see arch/powerpc/kernel/watchdog.c.
> The watchdog is supported only by some powerpc platforms, see the
> following line in arch/powerpc/Kconfig:
>
> select HAVE_HARDLOCKUP_DETECTOR_ARCH if PPC_BOOK3S_64 && SMP
>
> As a result, the test system could have the following in the config,
> see https://download.01.org/0day-ci/archive/20251203/202512030920.NFKtekA7-lkp@intel.com/config
>
> CONFIG_HARDLOCKUP_DETECTOR=y
> # CONFIG_HARDLOCKUP_DETECTOR_PERF is not set
> # CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set
> CONFIG_HARDLOCKUP_DETECTOR_ARCH=y
>
> And "COUNTS_HRTIMER" is not defined.

Thanks for the check!

Was working on a reply at the same time :)

> > @@ -1250,6 +1250,7 @@ static const struct ctl_table watchdog_s
> > .extra1 = SYSCTL_ZERO,
> > .extra2 = SYSCTL_ONE,
> > },
> > +#if defined(CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER)
> > {
> > .procname = "hardlockup_sys_info",
> > .data = &hardlockup_si_mask,
> > @@ -1257,6 +1258,7 @@ static const struct ctl_table watchdog_s
> > .mode = 0644,
> > .proc_handler = sysctl_sys_info_handler,
> > },
> > +#endif
> > #ifdef CONFIG_SMP
> > {
> > .procname = "hardlockup_all_cpu_backtrace",
> > _
>
> This patch makes some sense because the arch-specific watchdog does
> not support the sys_info interface. And it is better than nothing.
> definitely.
>
> A better solution would be export the variable and handle it
> in arch/powerpc/kernel/watchdog.c.

Yep!

> It seems that powerpc is the only architecture which could define
> HAVE_HARDLOCKUP_DETECTOR_ARCH.
>
> Feng, would you have time to look at it?

Sure.

Thanks,
Feng