[linux-next:master] [x86/module] 6661cae1aa: WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault

From: kernel test robot
Date: Fri Oct 11 2024 - 02:31:30 EST




Hello,

kernel test robot noticed "WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault" on:

commit: 6661cae1aa66d826b7ecd7044d0d76c66c015266 ("x86/module: enable ROX caches for module text")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

[test failed on linux-next/master 0cca97bf23640ff68a6e8a74e9b6659fdc27f48c]

in testcase: boot

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

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


+--------------------------------------------------------------+------------+------------+
| | d44c348582 | 6661cae1aa |
+--------------------------------------------------------------+------------+------------+
| WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault | 0 | 6 |
| EIP:__cpa_process_fault | 0 | 6 |
+--------------------------------------------------------------+------------+------------+


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/202410111408.8fe6f604-lkp@xxxxxxxxx


[ 8.158938][ T98] ------------[ cut here ]------------
[ 8.161035][ T98] CPA: called for zero pte. vaddr = 0 cpa->vaddr = 0
[ 8.163217][ T98] WARNING: CPU: 0 PID: 98 at arch/x86/mm/pat/set_memory.c:1620 __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.166598][ T98] Modules linked in:
[ 8.167997][ T98] CPU: 0 UID: 0 PID: 98 Comm: udevd Not tainted 6.12.0-rc2-00142-g6661cae1aa66 #1
[ 8.170966][ T98] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 8.174383][ T98] EIP: __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.176288][ T98] Code: d8 51 89 f9 e8 39 fb ff ff 83 c4 0c 85 c0 0f 89 95 fe ff ff e9 60 fe ff ff 8b 03 ff 30 ff 75 e8 68 e0 05 ff c1 e8 7c a8 00 00 <0f> 0b c7 45 ec f2 ff ff ff 83 c4 0c e9 fb fc ff ff 8d 76 00 55 89
All code
========
0: d8 51 89 fcoms -0x77(%rcx)
3: f9 stc
4: e8 39 fb ff ff call 0xfffffffffffffb42
9: 83 c4 0c add $0xc,%esp
c: 85 c0 test %eax,%eax
e: 0f 89 95 fe ff ff jns 0xfffffffffffffea9
14: e9 60 fe ff ff jmp 0xfffffffffffffe79
19: 8b 03 mov (%rbx),%eax
1b: ff 30 push (%rax)
1d: ff 75 e8 push -0x18(%rbp)
20: 68 e0 05 ff c1 push $0xffffffffc1ff05e0
25: e8 7c a8 00 00 call 0xa8a6
2a:* 0f 0b ud2 <-- trapping instruction
2c: c7 45 ec f2 ff ff ff movl $0xfffffff2,-0x14(%rbp)
33: 83 c4 0c add $0xc,%esp
36: e9 fb fc ff ff jmp 0xfffffffffffffd36
3b: 8d 76 00 lea 0x0(%rsi),%esi
3e: 55 push %rbp
3f: 89 .byte 0x89

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: c7 45 ec f2 ff ff ff movl $0xfffffff2,-0x14(%rbp)
9: 83 c4 0c add $0xc,%esp
c: e9 fb fc ff ff jmp 0xfffffffffffffd0c
11: 8d 76 00 lea 0x0(%rsi),%esi
14: 55 push %rbp
15: 89 .byte 0x89
[ 8.182574][ T98] EAX: 00000032 EBX: edb81db0 ECX: 0000021d EDX: 00000000
[ 8.185016][ T98] ESI: edb81d4a EDI: 00000000 EBP: edb81d30 ESP: edb81cf8
[ 8.187433][ T98] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010202
[ 8.190182][ T98] CR0: 80050033 CR2: b7c8e548 CR3: 2db88000 CR4: 00040690
[ 8.192564][ T98] Call Trace:
[ 8.193877][ T98] ? show_regs (arch/x86/kernel/dumpstack.c:479)
[ 8.195475][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.197352][ T98] ? __warn (kernel/panic.c:748)
[ 8.198883][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.200760][ T98] ? report_bug (lib/bug.c:201 lib/bug.c:219)
[ 8.202456][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.204259][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301)
[ 8.205893][ T98] ? handle_bug (arch/x86/kernel/traps.c:260)
[ 8.207451][ T98] ? exc_invalid_op (arch/x86/kernel/traps.c:309 (discriminator 1))
[ 8.209215][ T98] ? handle_exception (arch/x86/entry/entry_32.S:1047)
[ 8.210933][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301)
[ 8.212585][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.214504][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301)
[ 8.216170][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583)
[ 8.218077][ T98] ? __change_page_attr_set_clr (arch/x86/mm/pat/set_memory.c:1808)
[ 8.220025][ T98] __change_page_attr (arch/x86/mm/pat/set_memory.c:1644)
[ 8.221883][ T98] __change_page_attr_set_clr (arch/x86/mm/pat/set_memory.c:1808)
[ 8.223837][ T98] ? trace_hardirqs_on (kernel/trace/trace_preemptirq.c:63)
[ 8.225669][ T98] ? _raw_spin_unlock_irqrestore (arch/x86/include/asm/irqflags.h:42 arch/x86/include/asm/irqflags.h:97 arch/x86/include/asm/irqflags.h:155 include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194)
[ 8.227684][ T98] ? page_address (mm/highmem.c:778)
[ 8.229415][ T98] set_direct_map_valid_noflush (arch/x86/mm/pat/set_memory.c:2453)
[ 8.231211][ T98] execmem_set_direct_map_valid (mm/execmem.c:53)
[ 8.233327][ T98] execmem_alloc (mm/execmem.c:263 mm/execmem.c:291 mm/execmem.c:335 mm/execmem.c:357)
[ 8.234958][ T98] move_module (kernel/module/main.c:1220 kernel/module/main.c:2291)
[ 8.236569][ T98] layout_and_allocate+0xe7/0x160
[ 8.238634][ T98] load_module (kernel/module/main.c:2955)
[ 8.240229][ T98] init_module_from_file (kernel/module/main.c:3262)
[ 8.242074][ T98] idempotent_init_module (kernel/module/main.c:3196 kernel/module/main.c:3274)
[ 8.243946][ T98] __ia32_sys_finit_module (include/linux/file.h:68 kernel/module/main.c:3301 kernel/module/main.c:3283 kernel/module/main.c:3283)
[ 8.245807][ T98] ia32_sys_call (arch/x86/entry/syscall_32.c:44)
[ 8.247342][ T98] do_int80_syscall_32 (arch/x86/entry/common.c:165 arch/x86/entry/common.c:339)
[ 8.249008][ T98] entry_INT80_32 (arch/x86/entry/entry_32.S:944)
[ 8.250662][ T98] EIP: 0xb7dc0222
[ 8.252022][ T98] Code: 06 89 8a f0 02 00 00 c3 55 57 56 53 8b 6c 24 2c 8b 7c 24 28 8b 74 24 24 8b 54 24 20 8b 4c 24 1c 8b 5c 24 18 8b 44 24 14 cd 80 <5b> 5e 5f 5d 3d 01 f0 ff ff 0f 83 8f b5 f3 ff c3 66 90 66 90 66 90
All code
========
0: 06 (bad)
1: 89 8a f0 02 00 00 mov %ecx,0x2f0(%rdx)
7: c3 ret
8: 55 push %rbp
9: 57 push %rdi
a: 56 push %rsi
b: 53 push %rbx
c: 8b 6c 24 2c mov 0x2c(%rsp),%ebp
10: 8b 7c 24 28 mov 0x28(%rsp),%edi
14: 8b 74 24 24 mov 0x24(%rsp),%esi
18: 8b 54 24 20 mov 0x20(%rsp),%edx
1c: 8b 4c 24 1c mov 0x1c(%rsp),%ecx
20: 8b 5c 24 18 mov 0x18(%rsp),%ebx
24: 8b 44 24 14 mov 0x14(%rsp),%eax
28: cd 80 int $0x80
2a:* 5b pop %rbx <-- trapping instruction
2b: 5e pop %rsi
2c: 5f pop %rdi
2d: 5d pop %rbp
2e: 3d 01 f0 ff ff cmp $0xfffff001,%eax
33: 0f 83 8f b5 f3 ff jae 0xfffffffffff3b5c8
39: c3 ret
3a: 66 90 xchg %ax,%ax
3c: 66 90 xchg %ax,%ax
3e: 66 90 xchg %ax,%ax

Code starting with the faulting instruction
===========================================
0: 5b pop %rbx
1: 5e pop %rsi
2: 5f pop %rdi
3: 5d pop %rbp
4: 3d 01 f0 ff ff cmp $0xfffff001,%eax
9: 0f 83 8f b5 f3 ff jae 0xfffffffffff3b59e
f: c3 ret
10: 66 90 xchg %ax,%ax
12: 66 90 xchg %ax,%ax
14: 66 90 xchg %ax,%ax


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20241011/202410111408.8fe6f604-lkp@xxxxxxxxx



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