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

From: Stephen Rothwell
Date: Thu Feb 10 2022 - 05:41:36 EST


Hi all,

On Thu, 10 Feb 2022 19:33:02 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> On Thu, 10 Feb 2022 18:43:40 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> 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

Attachment: pgpuO868LYNwI.pgp
Description: OpenPGP digital signature