[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+CK2bCUWuK4fmuz5Us_mS1ByGy5SjaedVEquj1WxN8JUPsJaw@mail.gmail.com>
Date: Thu, 6 Nov 2025 16:46:45 -0500
From: Pasha Tatashin <pasha.tatashin@...een.com>
To: kernel test robot <oliver.sang@...el.com>
Cc: oe-lkp@...ts.linux.dev, lkp@...el.com, kexec@...ts.infradead.org,
linux-mm@...ck.org, linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
brauner@...nel.org, corbet@....net, graf@...zon.com, jgg@...pe.ca,
linux-kselftest@...r.kernel.org, masahiroy@...nel.org, ojeda@...nel.org,
pratyush@...nel.org, rdunlap@...radead.org, rppt@...nel.org, tj@...nel.org,
yanjun.zhu@...ux.dev
Subject: Re: [PATCH v9 2/9] kho: drop notifiers
The bug is in lib/test_kho.c, when KHO is not enabled, it should not
run KHO commands, there is a function to test that: kho_is_enabled().
So, KHO is disabled and kho_add_subtree() which calles add debugfs
entry, and the list is not initialized, because KHO is disabled. The
fix is:
diff --git a/lib/test_kho.c b/lib/test_kho.c
index 025ea251a186..85b60d87a50a 100644
--- a/lib/test_kho.c
+++ b/lib/test_kho.c
@@ -315,6 +315,9 @@ static int __init kho_test_init(void)
phys_addr_t fdt_phys;
int err;
+ if (!kho_is_enabled())
+ return 0;
+
err = kho_retrieve_subtree(KHO_TEST_FDT, &fdt_phys);
if (!err)
return kho_test_restore(fdt_phys);
On Thu, Nov 6, 2025 at 3:41 AM kernel test robot <oliver.sang@...el.com> wrote:
>
>
>
> Hello,
>
> kernel test robot noticed "WARNING:at_kernel/kexec_handover.c:#kho_add_subtree" on:
>
> commit: e44a700c561d1e892a8d0829d557e221604a7b93 ("[PATCH v9 2/9] kho: drop notifiers")
> url: https://github.com/intel-lab-lkp/linux/commits/Pasha-Tatashin/kho-make-debugfs-interface-optional/20251101-222610
> patch link: https://lore.kernel.org/all/20251101142325.1326536-3-pasha.tatashin@soleen.com/
> patch subject: [PATCH v9 2/9] kho: drop notifiers
>
> in testcase: boot
>
> config: x86_64-randconfig-001-20251015
> compiler: gcc-14
> test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G
>
> (please refer to attached dmesg/kmsg for entire log/backtrace)
>
>
> +--------------------------------------------------------+------------+------------+
> | | 93e4b3b2e9 | e44a700c56 |
> +--------------------------------------------------------+------------+------------+
> | WARNING:at_kernel/kexec_handover.c:#kho_add_subtree | 0 | 8 |
> | RIP:kho_add_subtree | 0 | 8 |
> +--------------------------------------------------------+------------+------------+
>
>
> 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 <oliver.sang@...el.com>
> | Closes: https://lore.kernel.org/oe-lkp/202511061629.e242724-lkp@intel.com
>
>
> [ 13.620111][ T1] ------------[ cut here ]------------
> [ 13.620739][ T1] WARNING: CPU: 1 PID: 1 at kernel/kexec_handover.c:704 kho_add_subtree (kernel/kexec_handover.c:704)
> [ 13.621665][ T1] Modules linked in:
> [ 13.622090][ T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc3-00211-ge44a700c561d #1 VOLUNTARY
> [ 13.623073][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> [ 13.624054][ T1] RIP: 0010:kho_add_subtree (kernel/kexec_handover.c:704)
> [ 13.624596][ T1] Code: c7 38 b4 ac 85 31 ed e8 01 1c 00 00 48 c7 c7 70 5a ca 86 85 c0 89 c3 40 0f 95 c5 31 c9 31 d2 89 ee e8 37 b5 0a 00 85 db 74 02 <0f> 0b b9 01 00 00 00 31 d2 89 ee 48 c7 c7 40 5a ca 86 e8 1c b5 0a
> All code
> ========
> 0: c7 38 b4 ac 85 xbegin 0xffffffff85acb43d,(bad)
> 5: 31 ed xor %ebp,%ebp
> 7: e8 01 1c 00 00 call 0x1c0d
> c: 48 c7 c7 70 5a ca 86 mov $0xffffffff86ca5a70,%rdi
> 13: 85 c0 test %eax,%eax
> 15: 89 c3 mov %eax,%ebx
> 17: 40 0f 95 c5 setne %bpl
> 1b: 31 c9 xor %ecx,%ecx
> 1d: 31 d2 xor %edx,%edx
> 1f: 89 ee mov %ebp,%esi
> 21: e8 37 b5 0a 00 call 0xab55d
> 26: 85 db test %ebx,%ebx
> 28: 74 02 je 0x2c
> 2a:* 0f 0b ud2 <-- trapping instruction
> 2c: b9 01 00 00 00 mov $0x1,%ecx
> 31: 31 d2 xor %edx,%edx
> 33: 89 ee mov %ebp,%esi
> 35: 48 c7 c7 40 5a ca 86 mov $0xffffffff86ca5a40,%rdi
> 3c: e8 .byte 0xe8
> 3d: 1c b5 sbb $0xb5,%al
> 3f: 0a .byte 0xa
>
> Code starting with the faulting instruction
> ===========================================
> 0: 0f 0b ud2
> 2: b9 01 00 00 00 mov $0x1,%ecx
> 7: 31 d2 xor %edx,%edx
> 9: 89 ee mov %ebp,%esi
> b: 48 c7 c7 40 5a ca 86 mov $0xffffffff86ca5a40,%rdi
> 12: e8 .byte 0xe8
> 13: 1c b5 sbb $0xb5,%al
> 15: 0a .byte 0xa
> [ 13.626370][ T1] RSP: 0018:ffffc9000001fca0 EFLAGS: 00010286
> [ 13.626951][ T1] RAX: dffffc0000000000 RBX: 00000000ffffffff RCX: 0000000000000000
> [ 13.627737][ T1] RDX: 1ffffffff0d94b52 RSI: 0000000000000001 RDI: ffffffff86ca5a90
> [ 13.628523][ T1] RBP: 0000000000000001 R08: 0000000000000008 R09: fffffbfff0dfac4c
> [ 13.629330][ T1] R10: 0000000000000000 R11: ffffffff86fd6267 R12: ffff888133ee2000
> [ 13.630101][ T1] R13: ffffffff85acb340 R14: ffff888117a5f988 R15: dffffc0000000000
> [ 13.630869][ T1] FS: 0000000000000000(0000) GS:ffff888426ea0000(0000) knlGS:0000000000000000
> [ 13.631727][ T1] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 13.632370][ T1] CR2: 00007f586df260ac CR3: 00000000054ea000 CR4: 00000000000406f0
> [ 13.633154][ T1] Call Trace:
> [ 13.633506][ T1] <TASK>
> [ 13.633833][ T1] kho_test_prepare_fdt+0x145/0x180
> [ 13.634446][ T1] ? kho_test_save_data+0x210/0x210
> [ 13.635097][ T1] ? csum_partial (lib/checksum.c:123)
> [ 13.635546][ T1] kho_test_init (lib/test_kho.c:177 lib/test_kho.c:284)
> [ 13.636018][ T1] ? vmalloc_test_init (lib/test_kho.c:271)
> [ 13.636508][ T1] ? add_device_randomness (drivers/char/random.c:944)
> [ 13.637485][ T1] ? mix_pool_bytes (drivers/char/random.c:944)
> [ 13.637955][ T1] ? trace_initcall_start (include/trace/events/initcall.h:27 (discriminator 3))
> [ 13.638498][ T1] ? vmalloc_test_init (lib/test_kho.c:271)
> [ 13.638989][ T1] do_one_initcall (init/main.c:1284)
> [ 13.639477][ T1] ? trace_initcall_start (init/main.c:1274)
> [ 13.639998][ T1] ? parse_one (kernel/params.c:143)
> [ 13.640455][ T1] ? kasan_save_track (mm/kasan/common.c:69 (discriminator 1) mm/kasan/common.c:78 (discriminator 1))
> [ 13.640948][ T1] ? __kmalloc_noprof (mm/slub.c:5659)
> [ 13.641465][ T1] do_initcalls (init/main.c:1344 (discriminator 3) init/main.c:1361 (discriminator 3))
> [ 13.641924][ T1] kernel_init_freeable (init/main.c:1595)
> [ 13.642441][ T1] ? rest_init (init/main.c:1475)
> [ 13.642891][ T1] kernel_init (init/main.c:1485)
> [ 13.643345][ T1] ? rest_init (init/main.c:1475)
> [ 13.643788][ T1] ret_from_fork (arch/x86/kernel/process.c:164)
> [ 13.644256][ T1] ? rest_init (init/main.c:1475)
> [ 13.644703][ T1] ret_from_fork_asm (arch/x86/entry/entry_64.S:255)
> [ 13.645213][ T1] </TASK>
> [ 13.645540][ T1] irq event stamp: 132025
> [ 13.645971][ T1] hardirqs last enabled at (132035): __up_console_sem (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:109 arch/x86/include/asm/irqflags.h:151 kernel/printk/printk.c:345)
> [ 13.646887][ T1] hardirqs last disabled at (132046): __up_console_sem (kernel/printk/printk.c:343 (discriminator 3))
> [ 13.648253][ T1] softirqs last enabled at (131286): handle_softirqs (kernel/softirq.c:469 (discriminator 1) kernel/softirq.c:650 (discriminator 1))
> [ 13.649690][ T1] softirqs last disabled at (131281): __irq_exit_rcu (kernel/softirq.c:496 kernel/softirq.c:723)
> [ 13.651128][ T1] ---[ end trace 0000000000000000 ]---
>
>
> The kernel config and materials to reproduce are available at:
> https://download.01.org/0day-ci/archive/20251106/202511061629.e242724-lkp@intel.com
>
>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
Powered by blists - more mailing lists