All of lore.kernel.org
 help / color / mirror / Atom feed
* [rppt:execmem/x86-rox/rfc-v2] [x86/module] 6e2766e629: BUG:unable_to_handle_page_fault_for_address
@ 2024-05-10  9:32 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-05-10  9:32 UTC (permalink / raw)
  To: Mike Rapoport; +Cc: oe-lkp, lkp, Mike Rapoport

Hello,

kernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:

commit: 6e2766e6297f77c7bbadeabedaa4e45877ef9692 ("x86/module: enable ROX caches for module text")
https://git.kernel.org/cgit/linux/kernel/git/rppt/linux.git execmem/x86-rox/rfc-v2

in testcase: boot

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

(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 <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202405101709.37715bca-lkp@intel.com


[  186.815140][   T67] BUG: unable to handle page fault for address: ef20095d
[  186.816059][   T67] #PF: supervisor write access in kernel mode
[  186.816831][   T67] #PF: error_code(0x0003) - permissions violation
[  186.817629][   T67] *pdpt = 000000000e7f5001 *pde = 00000000233da067 *pte = 00000000abe64121
[  186.818715][   T67] Oops: 0003 [#1] PREEMPT SMP
[  186.819299][   T67] CPU: 1 PID: 67 Comm: modprobe Tainted: G        W        N 6.9.0-rc4-00023-g6e2766e6297f #1
[  186.820586][   T67] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 186.821902][ T67] EIP: apply_relocate (arch/x86/kernel/module.c:?) 
[ 186.822391][ T67] Code: 8d 54 f0 14 8d 0c 89 8d 4c c8 0c 89 4d e8 31 db 89 45 ec 89 55 f0 eb 24 90 90 90 90 90 c1 e6 04 8b 44 31 04 29 d0 89 d1 03 01 <89> 02 43 8b 55 f0 8b 02 c1 e8 03 39 c3 8b 45 ec 73 3a 8b 4a 08 8d
All code
========
   0:	8d 54 f0 14          	lea    0x14(%rax,%rsi,8),%edx
   4:	8d 0c 89             	lea    (%rcx,%rcx,4),%ecx
   7:	8d 4c c8 0c          	lea    0xc(%rax,%rcx,8),%ecx
   b:	89 4d e8             	mov    %ecx,-0x18(%rbp)
   e:	31 db                	xor    %ebx,%ebx
  10:	89 45 ec             	mov    %eax,-0x14(%rbp)
  13:	89 55 f0             	mov    %edx,-0x10(%rbp)
  16:	eb 24                	jmp    0x3c
  18:	90                   	nop
  19:	90                   	nop
  1a:	90                   	nop
  1b:	90                   	nop
  1c:	90                   	nop
  1d:	c1 e6 04             	shl    $0x4,%esi
  20:	8b 44 31 04          	mov    0x4(%rcx,%rsi,1),%eax
  24:	29 d0                	sub    %edx,%eax
  26:	89 d1                	mov    %edx,%ecx
  28:	03 01                	add    (%rcx),%eax
  2a:*	89 02                	mov    %eax,(%rdx)		<-- trapping instruction
  2c:	43 8b 55 f0          	rex.XB mov -0x10(%r13),%edx
  30:	8b 02                	mov    (%rdx),%eax
  32:	c1 e8 03             	shr    $0x3,%eax
  35:	39 c3                	cmp    %eax,%ebx
  37:	8b 45 ec             	mov    -0x14(%rbp),%eax
  3a:	73 3a                	jae    0x76
  3c:	8b 4a 08             	mov    0x8(%rdx),%ecx
  3f:	8d                   	.byte 0x8d

Code starting with the faulting instruction
===========================================
   0:	89 02                	mov    %eax,(%rdx)
   2:	43 8b 55 f0          	rex.XB mov -0x10(%r13),%edx
   6:	8b 02                	mov    (%rdx),%eax
   8:	c1 e8 03             	shr    $0x3,%eax
   b:	39 c3                	cmp    %eax,%ebx
   d:	8b 45 ec             	mov    -0x14(%rbp),%eax
  10:	73 3a                	jae    0x4c
  12:	8b 4a 08             	mov    0x8(%rdx),%ecx
  15:	8d                   	.byte 0x8d
[  186.823986][   T67] EAX: bbd19ccc EBX: 00000000 ECX: ef063258 EDX: ef20095d
[  186.824574][   T67] ESI: 00000250 EDI: 00000001 EBP: e14a3d8c ESP: e14a3d70
[  186.825153][   T67] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 EFLAGS: 00010287
[  186.825775][   T67] CR0: 80050033 CR2: ef20095d CR3: 0134adc0 CR4: 000406b0
[  186.826356][   T67] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[  186.826936][   T67] DR6: fffe0ff0 DR7: 00000400
[  186.827317][   T67] Call Trace:
[ 186.827584][ T67] ? __die_body (arch/x86/kernel/dumpstack.c:478 arch/x86/kernel/dumpstack.c:420) 
[ 186.827941][ T67] ? __die (arch/x86/kernel/dumpstack.c:434) 
[ 186.828266][ T67] ? page_fault_oops (arch/x86/mm/fault.c:709) 
[ 186.828672][ T67] ? kernelmode_fixup_or_oops (arch/x86/mm/fault.c:767) 
[ 186.829126][ T67] ? __bad_area_nosemaphore (arch/x86/mm/fault.c:814) 
[ 186.829572][ T67] ? bad_area_nosemaphore (arch/x86/mm/fault.c:863) 
[ 186.829990][ T67] ? do_kern_addr_fault (arch/x86/mm/fault.c:1223) 
[ 186.830400][ T67] ? exc_page_fault (arch/x86/mm/fault.c:?) 
[ 186.830783][ T67] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1518) 
[ 186.831287][ T67] ? handle_exception (arch/x86/entry/entry_32.S:1047) 
[ 186.831698][ T67] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1518) 
[ 186.832201][ T67] ? apply_relocate (arch/x86/kernel/module.c:?) 
[ 186.832557][ T67] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1518) 
[ 186.833023][ T67] ? apply_relocate (arch/x86/kernel/module.c:?) 
[ 186.833379][ T67] apply_relocations (kernel/module/main.c:1508) 
[ 186.833740][ T67] load_module (kernel/module/main.c:2987) 
[ 186.834089][ T67] __ia32_sys_init_module (kernel/module/main.c:3125 kernel/module/main.c:3105 kernel/module/main.c:3105) 
[ 186.834497][ T67] ia32_sys_call (arch/x86/entry/syscall_32.c:42) 
[ 186.834857][ T67] do_int80_syscall_32 (arch/x86/entry/common.c:?) 
[ 186.835230][ T67] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 186.835643][ T67] ? lock_release (kernel/locking/lockdep.c:467) 
[ 186.835997][ T67] ? insert_page_into_pte_locked (include/linux/rcupdate.h:338) 
[ 186.836461][ T67] ? rcu_lock_release (include/linux/rcupdate.h:340) 
[ 186.836828][ T67] ? handle_mm_fault (mm/memory.c:4886) 
[ 186.837209][ T67] ? do_user_addr_fault (include/linux/mmap_lock.h:?) 
[ 186.837601][ T67] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 186.838013][ T67] ? lock_release (kernel/locking/lockdep.c:467) 
[ 186.838365][ T67] ? do_user_addr_fault (include/linux/mmap_lock.h:?) 
[ 186.838757][ T67] ? irqentry_exit (kernel/entry/common.c:367) 
[ 186.839104][ T67] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 186.839517][ T67] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4421) 
[ 186.839911][ T67] ? irqentry_exit_to_user_mode (kernel/entry/common.c:234) 
[ 186.840353][ T67] ? irqentry_exit (kernel/entry/common.c:367) 
[ 186.840700][ T67] ? exc_page_fault (arch/x86/mm/fault.c:1567) 
[ 186.841056][ T67] entry_INT80_32 (arch/x86/entry/entry_32.S:944) 
[  186.841411][   T67] EIP: 0xb7fb31b2
[ 186.841685][ T67] Code: 89 c2 31 c0 89 d7 f3 aa 8b 44 24 1c 89 30 c6 40 04 00 83 c4 2c 89 f0 5b 5e 5f 5d c3 90 90 90 90 90 90 90 90 90 90 90 90 cd 80 <c3> 8d b6 00 00 00 00 8d bc 27 00 00 00 00 8b 1c 24 c3 8d b6 00 00
All code
========
   0:	89 c2                	mov    %eax,%edx
   2:	31 c0                	xor    %eax,%eax
   4:	89 d7                	mov    %edx,%edi
   6:	f3 aa                	rep stos %al,%es:(%rdi)
   8:	8b 44 24 1c          	mov    0x1c(%rsp),%eax
   c:	89 30                	mov    %esi,(%rax)
   e:	c6 40 04 00          	movb   $0x0,0x4(%rax)
  12:	83 c4 2c             	add    $0x2c,%esp
  15:	89 f0                	mov    %esi,%eax
  17:	5b                   	pop    %rbx
  18:	5e                   	pop    %rsi
  19:	5f                   	pop    %rdi
  1a:	5d                   	pop    %rbp
  1b:	c3                   	ret
  1c:	90                   	nop
  1d:	90                   	nop
  1e:	90                   	nop
  1f:	90                   	nop
  20:	90                   	nop
  21:	90                   	nop
  22:	90                   	nop
  23:	90                   	nop
  24:	90                   	nop
  25:	90                   	nop
  26:	90                   	nop
  27:	90                   	nop
  28:	cd 80                	int    $0x80
  2a:*	c3                   	ret		<-- trapping instruction
  2b:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
  31:	8d bc 27 00 00 00 00 	lea    0x0(%rdi,%riz,1),%edi
  38:	8b 1c 24             	mov    (%rsp),%ebx
  3b:	c3                   	ret
  3c:	8d                   	.byte 0x8d
  3d:	b6 00                	mov    $0x0,%dh
	...

Code starting with the faulting instruction
===========================================
   0:	c3                   	ret
   1:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
   7:	8d bc 27 00 00 00 00 	lea    0x0(%rdi,%riz,1),%edi
   e:	8b 1c 24             	mov    (%rsp),%ebx
  11:	c3                   	ret
  12:	8d                   	.byte 0x8d
  13:	b6 00                	mov    $0x0,%dh


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240510/202405101709.37715bca-lkp@intel.com



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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-05-10  9:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-10  9:32 [rppt:execmem/x86-rox/rfc-v2] [x86/module] 6e2766e629: BUG:unable_to_handle_page_fault_for_address kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.