Hello, from commit message, we are not very clear the purpose of this HACK patch. we just make this report FYI what we observed in our tests. if less useful, please just ignore. thanks kernel test robot noticed "BUG:kernel_NULL_pointer_dereference,address" on: commit: 3340b9085e6f2a812039ed0a9ca03e8e26cc01ba ("TESTING, HACK: sheaves for everyone") https://git.kernel.org/cgit/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v1r5 in testcase: boot config: i386-randconfig-005-20241113 compiler: gcc-12 test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G (please refer to attached dmesg/kmsg for entire log/backtrace) +---------------------------------------------+------------+------------+ | | 0382bfb32e | 3340b9085e | +---------------------------------------------+------------+------------+ | boot_successes | 18 | 0 | | boot_failures | 0 | 18 | | BUG:kernel_NULL_pointer_dereference,address | 0 | 18 | | Oops | 0 | 18 | | EIP:__queue_work | 0 | 18 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 18 | +---------------------------------------------+------------+------------+ 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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-lkp/202411221731.acb4de27-lkp@xxxxxxxxx [ 2.886567][ T1] BUG: kernel NULL pointer dereference, address: 000000f0 [ 2.887104][ T1] #PF: supervisor read access in kernel mode [ 2.887541][ T1] #PF: error_code(0x0000) - not-present page [ 2.887977][ T1] *pde = 00000000 [ 2.888270][ T1] Oops: Oops: 0000 [#1] PREEMPT [ 2.888628][ T1] CPU: 0 UID: 0 PID: 1 Comm: swapper Not tainted 6.12.0-rc7-00008-g3340b9085e6f #1 [ 2.889305][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 2.890854][ T1] EIP: __queue_work (kernel/workqueue.c:2256 (discriminator 49)) [ 2.891479][ T1] Code: f6 0f 95 c2 31 c9 6a 00 e8 19 49 0f 00 85 f6 58 0f 85 10 02 00 00 31 d2 31 c9 b8 b8 de da c2 6a 00 e8 00 49 0f 00 58 8b 45 f0 <f7> 80 f0 00 00 00 00 80 01 00 0f 85 0c 04 00 00 b8 a0 de da c2 31 All code ======== 0: f6 0f 95 testb $0x95,(%rdi) 3: c2 31 c9 ret $0xc931 6: 6a 00 push $0x0 8: e8 19 49 0f 00 call 0xf4926 d: 85 f6 test %esi,%esi f: 58 pop %rax 10: 0f 85 10 02 00 00 jne 0x226 16: 31 d2 xor %edx,%edx 18: 31 c9 xor %ecx,%ecx 1a: b8 b8 de da c2 mov $0xc2dadeb8,%eax 1f: 6a 00 push $0x0 21: e8 00 49 0f 00 call 0xf4926 26: 58 pop %rax 27: 8b 45 f0 mov -0x10(%rbp),%eax 2a:* f7 80 f0 00 00 00 00 testl $0x18000,0xf0(%rax) <-- trapping instruction 31: 80 01 00 34: 0f 85 0c 04 00 00 jne 0x446 3a: b8 a0 de da c2 mov $0xc2dadea0,%eax 3f: 31 .byte 0x31 Code starting with the faulting instruction =========================================== 0: f7 80 f0 00 00 00 00 testl $0x18000,0xf0(%rax) 7: 80 01 00 a: 0f 85 0c 04 00 00 jne 0x41c 10: b8 a0 de da c2 mov $0xc2dadea0,%eax 15: 31 .byte 0x31 [ 2.891706][ T1] EAX: 00000000 EBX: c2c42920 ECX: 00000006 EDX: 00000000 [ 2.891706][ T1] ESI: 00000000 EDI: 00000000 EBP: c4119e50 ESP: c4119e2c [ 2.891706][ T1] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 EFLAGS: 00010082 [ 2.891706][ T1] CR0: 80050033 CR2: 000000f0 CR3: 02fb7000 CR4: 00040690 [ 2.891706][ T1] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 2.891706][ T1] DR6: fffe0ff0 DR7: 00000400 [ 2.891706][ T1] Call Trace: [ 2.891706][ T1] ? show_regs (arch/x86/kernel/dumpstack.c:479 arch/x86/kernel/dumpstack.c:465) [ 2.891706][ T1] ? __die (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:434) [ 2.891706][ T1] ? page_fault_oops (arch/x86/mm/fault.c:710) [ 2.891706][ T1] ? kernelmode_fixup_or_oops+0x88/0xa0 [ 2.891706][ T1] ? __bad_area_nosemaphore+0x127/0x1b0 [ 2.891706][ T1] ? bad_area_nosemaphore (arch/x86/mm/fault.c:835) [ 2.891706][ T1] ? do_user_addr_fault (arch/x86/mm/fault.c:1280 (discriminator 1)) [ 2.891706][ T1] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) [ 2.891706][ T1] ? exc_page_fault (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:87 arch/x86/include/asm/irqflags.h:147 arch/x86/mm/fault.c:1489 arch/x86/mm/fault.c:1539) [ 2.891706][ T1] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) [ 2.891706][ T1] ? handle_exception (arch/x86/entry/entry_32.S:1055) [ 2.891706][ T1] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) [ 2.891706][ T1] ? __queue_work (kernel/workqueue.c:2256 (discriminator 49)) [ 2.891706][ T1] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) [ 2.891706][ T1] ? __queue_work (kernel/workqueue.c:2256 (discriminator 49)) [ 2.891706][ T1] ? clear_pending_if_disabled (kernel/workqueue.c:2356 (discriminator 2)) [ 2.891706][ T1] queue_work_on (kernel/workqueue.c:2394) [ 2.891706][ T1] flush_all_cpus_locked (mm/slub.c:3892) [ 2.891706][ T1] __kmem_cache_shrink (mm/slub.c:7006) [ 2.891706][ T1] kmem_cache_shrink (mm/slab_common.c:566) [ 2.891706][ T1] acpi_os_purge_cache (drivers/acpi/osl.c:1575) [ 2.891706][ T1] acpi_purge_cached_objects (drivers/acpi/acpica/utxface.c:238) [ 2.891706][ T1] acpi_initialize_objects (drivers/acpi/acpica/utxfinit.c:253) [ 2.891706][ T1] acpi_bus_init (drivers/acpi/bus.c:1368) [ 2.891706][ T1] ? kobject_create_and_add (lib/kobject.c:799) [ 2.891706][ T1] acpi_init (drivers/acpi/bus.c:1452) [ 2.891706][ T1] ? acpi_bus_init (drivers/acpi/bus.c:1438) [ 2.891706][ T1] do_one_initcall (init/main.c:1269) [ 2.891706][ T1] ? acpi_bus_init (drivers/acpi/bus.c:1438) [ 2.891706][ T1] ? rcu_is_watching (kernel/rcu/tree.c:739) [ 2.891706][ T1] ? trace_initcall_level (include/trace/events/initcall.h:10 (discriminator 63)) [ 2.891706][ T1] do_initcalls (init/main.c:1330 init/main.c:1347) [ 2.891706][ T1] kernel_init_freeable (init/main.c:1582) [ 2.891706][ T1] ? rest_init (init/main.c:1461) [ 2.891706][ T1] kernel_init (init/main.c:1471) [ 2.891706][ T1] ret_from_fork (arch/x86/kernel/process.c:153) [ 2.891706][ T1] ? rest_init (init/main.c:1461) [ 2.891706][ T1] ret_from_fork_asm (arch/x86/entry/entry_32.S:737) [ 2.891706][ T1] entry_INT80_32 (arch/x86/entry/entry_32.S:945) [ 2.891706][ T1] Modules linked in: [ 2.891706][ T1] CR2: 00000000000000f0 [ 2.891706][ T1] ---[ end trace 0000000000000000 ]--- [ 2.891706][ T1] EIP: __queue_work (kernel/workqueue.c:2256 (discriminator 49)) [ 2.891706][ T1] Code: f6 0f 95 c2 31 c9 6a 00 e8 19 49 0f 00 85 f6 58 0f 85 10 02 00 00 31 d2 31 c9 b8 b8 de da c2 6a 00 e8 00 49 0f 00 58 8b 45 f0 <f7> 80 f0 00 00 00 00 80 01 00 0f 85 0c 04 00 00 b8 a0 de da c2 31 All code ======== 0: f6 0f 95 testb $0x95,(%rdi) 3: c2 31 c9 ret $0xc931 6: 6a 00 push $0x0 8: e8 19 49 0f 00 call 0xf4926 d: 85 f6 test %esi,%esi f: 58 pop %rax 10: 0f 85 10 02 00 00 jne 0x226 16: 31 d2 xor %edx,%edx 18: 31 c9 xor %ecx,%ecx 1a: b8 b8 de da c2 mov $0xc2dadeb8,%eax 1f: 6a 00 push $0x0 21: e8 00 49 0f 00 call 0xf4926 26: 58 pop %rax 27: 8b 45 f0 mov -0x10(%rbp),%eax 2a:* f7 80 f0 00 00 00 00 testl $0x18000,0xf0(%rax) <-- trapping instruction 31: 80 01 00 34: 0f 85 0c 04 00 00 jne 0x446 3a: b8 a0 de da c2 mov $0xc2dadea0,%eax 3f: 31 .byte 0x31 Code starting with the faulting instruction =========================================== 0: f7 80 f0 00 00 00 00 testl $0x18000,0xf0(%rax) 7: 80 01 00 a: 0f 85 0c 04 00 00 jne 0x41c 10: b8 a0 de da c2 mov $0xc2dadea0,%eax 15: 31 .byte 0x31 The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20241122/202411221731.acb4de27-lkp@xxxxxxxxx -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki