Subject: Re: linux-next: boottime warning from todays linux-next

From: Stephen Rothwell <[email-masked]>
Date: Thu, 10 Feb 2022 21:41:25 +1100

Hi all,

On Thu, 10 Feb 2022 19:33:02 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> On Thu, 10 Feb 2022 18:43:40 +1100 Stephen Rothwell <[email-masked]> wrote:
> >
> > My qemu boot of a powerpc pseries_le_defconfig kernel produced these
> > kernel messages:
> > 
> >   CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.17.0-rc3 #2
> >   Call Trace:
> >   [c0000000073e3a80] [c0000000007bfd40] dump_stack_lvl+0x74/0xa8 (unreliable)
> >   [c0000000073e3ac0] [c00000000057e3dc] __register_sysctl_table+0x60c/0x9f0
> >   [c0000000073e3bd0] [c000000002041170] init_fs_stat_sysctls+0x48/0x60
> >   [c0000000073e3bf0] [c000000000012110] do_one_initcall+0x60/0x2d0
> >   [c0000000073e3cd0] [c0000000020049f0] kernel_init_freeable+0x334/0x3dc
> >   [c0000000073e3db0] [c000000000012710] kernel_init+0x30/0x1a0
> >   [c0000000073e3e10] [c00000000000cd64] ret_from_kernel_thread+0x5c/0x64
> > 
> > Presumably introduced by commit
> > 
> >   b42bc9a3c511 ("Fix regression due to "fs: move binfmt_misc sysctl to its own file"")  
> 
> OK, I cannot reproduce this with just Linus' tree.  I will try to bisect.

It bisected to commit

  43a9443d5da2 ("Merge branch 'akpm-current/current'")

and both parents of that commit are fine :-(

"git diff-tree --cc 43a9443d5da2" looks like this:

43a9443d5da2d53dc06095b90b1aca18b72caef5
diff --cc lib/Kconfig.debug
index f15dd96028b5,efc1a1908e04..682c776ae73d
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@@ -317,6 -339,7 +339,7 @@@ config DEBUG_INFO_BT
  	depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED
  	depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST
  	depends on BPF_SYSCALL
 -	depends on !DEBUG_INFO_DWARF5
++	depends on !DEBUG_INFO_DWARF5 || PAHOLE_VERSION >= 121
  	help
  	  Generate deduplicated BTF type information from DWARF debug info.
  	  Turning this on expects presence of pahole tool, which will convert
diff --cc tools/include/linux/gfp.h
index b238dbc9eb85,22030756fbc0..56eec4445bc9
--- a/tools/include/linux/gfp.h
+++ b/tools/include/linux/gfp.h
@@@ -2,31 -1,4 +2,30 @@@
  #ifndef _TOOLS_INCLUDE_LINUX_GFP_H
  #define _TOOLS_INCLUDE_LINUX_GFP_H
  
 +#include <linux/types.h>
 +
 +#define __GFP_BITS_SHIFT 26
 +#define __GFP_BITS_MASK ((gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
 +
 +#define __GFP_HIGH		0x20u
 +#define __GFP_IO		0x40u
 +#define __GFP_FS		0x80u
 +#define __GFP_NOWARN		0x200u
 +#define __GFP_ZERO		0x8000u
- #define __GFP_ATOMIC		0x80000u
 +#define __GFP_ACCOUNT		0x100000u
 +#define __GFP_DIRECT_RECLAIM	0x400000u
 +#define __GFP_KSWAPD_RECLAIM	0x2000000u
 +
 +#define __GFP_RECLAIM	(__GFP_DIRECT_RECLAIM | __GFP_KSWAPD_RECLAIM)
 +
 +#define GFP_ZONEMASK	0x0fu
- #define GFP_ATOMIC	(__GFP_HIGH | __GFP_ATOMIC | __GFP_KSWAPD_RECLAIM)
++#define GFP_ATOMIC	(__GFP_HIGH | __GFP_KSWAPD_RECLAIM)
 +#define GFP_KERNEL	(__GFP_RECLAIM | __GFP_IO | __GFP_FS)
 +#define GFP_NOWAIT	(__GFP_KSWAPD_RECLAIM)
 +
 +static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
 +{
 +	return !!(gfp_flags & __GFP_DIRECT_RECLAIM);
 +}
 +
  #endif /* _TOOLS_INCLUDE_LINUX_GFP_H */

Which looks pretty innocuous.

-- 
Cheers,
Stephen Rothwell