[linus:master] [tracing/synthetic] ddeea494a1: BUG:unable_to_handle_page_fault_for_address

From: kernel test robot
Date: Wed Aug 30 2023 - 22:26:59 EST




Hello,

kernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:

commit: ddeea494a16f32522bce16ee65f191d05d4b8282 ("tracing/synthetic: Use union instead of casts")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

in testcase: boot

compiler: clang-16
test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G

(please refer to attached dmesg/kmsg for entire log/backtrace)



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/202308311026.b4bc6948-oliver.sang@xxxxxxxxx


[ 390.645593][ T41] BUG: unable to handle page fault for address: 001c24ca
[ 390.646174][ T41] #PF: supervisor read access in kernel mode
[ 390.646669][ T41] #PF: error_code(0x0000) - not-present page
[ 390.647170][ T41] *pdpt = 000000002e192001 *pde = 0000000000000000
[ 390.647717][ T41] Oops: 0000 [#1] PREEMPT SMP
[ 390.648101][ T41] CPU: 1 PID: 41 Comm: rcu_scale_write Tainted: G T 6.5.0-rc6-00003-gddeea494a16f #1 402c7a624341eb9320bc4b1c80c0d4ec9184aa32
[ 390.649312][ T41] EIP: string (lib/vsprintf.c:644)
[ 390.649695][ T41] Code: 73 43 89 c1 8b 44 24 10 89 04 24 89 5c 24 04 c1 fb 10 0f 84 ab 00 00 00 31 c0 89 ce eb 09 40 39 c3 0f 84 a2 00 00 00 8d 0c 07 <0f> b6 14 06 84 d2 0f 84 99 00 00 00 3b 4c 24 0c 73 e2 88 11 eb de
All code
========
0: 73 43 jae 0x45
2: 89 c1 mov %eax,%ecx
4: 8b 44 24 10 mov 0x10(%rsp),%eax
8: 89 04 24 mov %eax,(%rsp)
b: 89 5c 24 04 mov %ebx,0x4(%rsp)
f: c1 fb 10 sar $0x10,%ebx
12: 0f 84 ab 00 00 00 je 0xc3
18: 31 c0 xor %eax,%eax
1a: 89 ce mov %ecx,%esi
1c: eb 09 jmp 0x27
1e: 40 39 c3 rex cmp %eax,%ebx
21: 0f 84 a2 00 00 00 je 0xc9
27: 8d 0c 07 lea (%rdi,%rax,1),%ecx
2a:* 0f b6 14 06 movzbl (%rsi,%rax,1),%edx <-- trapping instruction
2e: 84 d2 test %dl,%dl
30: 0f 84 99 00 00 00 je 0xcf
36: 3b 4c 24 0c cmp 0xc(%rsp),%ecx
3a: 73 e2 jae 0x1e
3c: 88 11 mov %dl,(%rcx)
3e: eb de jmp 0x1e

Code starting with the faulting instruction
===========================================
0: 0f b6 14 06 movzbl (%rsi,%rax,1),%edx
4: 84 d2 test %dl,%dl
6: 0f 84 99 00 00 00 je 0xa5
c: 3b 4c 24 0c cmp 0xc(%rsp),%ecx
10: 73 e2 jae 0xfffffffffffffff4
12: 88 11 mov %dl,(%rcx)
14: eb de jmp 0xfffffffffffffff4
[ 390.651345][ T41] EAX: 00000000 EBX: ffffffff ECX: c31b291f EDX: 00000000
[ 390.651928][ T41] ESI: 001c24ca EDI: c31b291f EBP: c428fcc4 ESP: c428fca0
[ 390.652517][ T41] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010046
[ 390.653162][ T41] CR0: 80050033 CR2: 001c24ca CR3: 2e2a62a0 CR4: 000406f0
[ 390.653800][ T41] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 390.654421][ T41] DR6: fffe0ff0 DR7: 00000400
[ 390.654809][ T41] Call Trace:
[ 390.655097][ T41] ? __die_body (arch/x86/kernel/dumpstack.c:478 arch/x86/kernel/dumpstack.c:420)
[ 390.655473][ T41] ? __die (arch/x86/kernel/dumpstack.c:434)
[ 390.655807][ T41] ? page_fault_oops (arch/x86/mm/fault.c:703)
[ 390.656237][ T41] ? pvclock_clocksource_read_nowd (arch/x86/include/asm/pvclock.h:36 arch/x86/kernel/pvclock.c:79 arch/x86/kernel/pvclock.c:120)
[ 390.656769][ T41] ? kernelmode_fixup_or_oops (arch/x86/mm/fault.c:761)
[ 390.657284][ T41] ? __bad_area_nosemaphore (arch/x86/mm/fault.c:817)
[ 390.657763][ T41] ? pvclock_clocksource_read_nowd (arch/x86/include/asm/pvclock.h:36 arch/x86/kernel/pvclock.c:79 arch/x86/kernel/pvclock.c:120)
[ 390.658279][ T41] ? bad_area_nosemaphore (arch/x86/mm/fault.c:866)
[ 390.658710][ T41] ? do_user_addr_fault (arch/x86/mm/fault.c:?)
[ 390.659137][ T41] ? exc_page_fault (arch/x86/include/asm/irqflags.h:19 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 arch/x86/mm/fault.c:1494 arch/x86/mm/fault.c:1542)
[ 390.659538][ T41] ? local_clock_noinstr (kernel/sched/build_utility.c:301)
[ 390.659974][ T41] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1499)
[ 390.660529][ T41] ? handle_exception (arch/x86/entry/entry_32.S:1049)
[ 390.660982][ T41] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1499)
[ 390.661525][ T41] ? string (lib/vsprintf.c:644)
[ 390.661882][ T41] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1499)
[ 390.662443][ T41] ? string (lib/vsprintf.c:644)
[ 390.662796][ T41] vsnprintf (lib/vsprintf.c:2817)
[ 390.663174][ T41] seq_buf_vprintf (lib/seq_buf.c:64)
[ 390.663579][ T41] trace_seq_printf (include/linux/seq_buf.h:47 kernel/trace/trace_seq.c:96)
[ 390.663979][ T41] print_synth_event (kernel/trace/trace_events_synth.c:? kernel/trace/trace_events_synth.c:409)
[ 390.664446][ T41] print_trace_fmt (kernel/trace/trace.c:?)
[ 390.664878][ T41] print_trace_line (kernel/trace/trace.c:?)
[ 390.665321][ T41] ftrace_dump (kernel/trace/trace.c:10167)
[ 390.665711][ T41] rcu_scale_writer (kernel/rcu/rcuscale.c:486)
[ 390.666140][ T41] kthread (kernel/kthread.c:391)
[ 390.666516][ T41] ? rcu_scale_reader (kernel/rcu/rcuscale.c:410)
[ 390.666972][ T41] ? kthread_unuse_mm (kernel/kthread.c:342)
[ 390.667422][ T41] ? kthread_unuse_mm (kernel/kthread.c:342)
[ 390.667879][ T41] ret_from_fork (arch/x86/kernel/process.c:151)
[ 390.668271][ T41] ret_from_fork_asm (arch/x86/entry/entry_32.S:741)
[ 390.668691][ T41] entry_INT80_32 (arch/x86/entry/entry_32.S:947)
[ 390.669124][ T41] Modules linked in:
[ 390.669435][ T41] CR2: 00000000001c24ca
[ 390.669806][ T41] ---[ end trace 0000000000000000 ]---
[ 390.670258][ T41] EIP: string (lib/vsprintf.c:644)
[ 390.670623][ T41] Code: 73 43 89 c1 8b 44 24 10 89 04 24 89 5c 24 04 c1 fb 10 0f 84 ab 00 00 00 31 c0 89 ce eb 09 40 39 c3 0f 84 a2 00 00 00 8d 0c 07 <0f> b6 14 06 84 d2 0f 84 99 00 00 00 3b 4c 24 0c 73 e2 88 11 eb de
All code
========
0: 73 43 jae 0x45
2: 89 c1 mov %eax,%ecx
4: 8b 44 24 10 mov 0x10(%rsp),%eax
8: 89 04 24 mov %eax,(%rsp)
b: 89 5c 24 04 mov %ebx,0x4(%rsp)
f: c1 fb 10 sar $0x10,%ebx
12: 0f 84 ab 00 00 00 je 0xc3
18: 31 c0 xor %eax,%eax
1a: 89 ce mov %ecx,%esi
1c: eb 09 jmp 0x27
1e: 40 39 c3 rex cmp %eax,%ebx
21: 0f 84 a2 00 00 00 je 0xc9
27: 8d 0c 07 lea (%rdi,%rax,1),%ecx
2a:* 0f b6 14 06 movzbl (%rsi,%rax,1),%edx <-- trapping instruction
2e: 84 d2 test %dl,%dl
30: 0f 84 99 00 00 00 je 0xcf
36: 3b 4c 24 0c cmp 0xc(%rsp),%ecx
3a: 73 e2 jae 0x1e
3c: 88 11 mov %dl,(%rcx)
3e: eb de jmp 0x1e

Code starting with the faulting instruction
===========================================
0: 0f b6 14 06 movzbl (%rsi,%rax,1),%edx
4: 84 d2 test %dl,%dl
6: 0f 84 99 00 00 00 je 0xa5
c: 3b 4c 24 0c cmp 0xc(%rsp),%ecx
10: 73 e2 jae 0xfffffffffffffff4
12: 88 11 mov %dl,(%rcx)
14: eb de jmp 0xfffffffffffffff4


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20230831/202308311026.b4bc6948-oliver.sang@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki