lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210623022826.GA20282@xsang-OptiPlex-9020>
Date:   Wed, 23 Jun 2021 10:28:26 +0800
From:   kernel test robot <oliver.sang@...el.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     Ingo Molnar <mingo@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>, x86@...nel.org,
        lkp@...ts.01.org, lkp@...el.com
Subject: [jump_label, x86]  e7bf1ba97a:
 BUG:unable_to_handle_page_fault_for_address



Greeting,

FYI, we noticed the following commit (built with gcc-9):

commit: e7bf1ba97afdde75b0ef43e4bdb718bf843613f1 ("jump_label, x86: Emit short JMP")
https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git objtool/core


in testcase: kernel-selftests
version: kernel-selftests-x86_64-7ae2585b-1_20210607
with following parameters:

	group: group-01
	ucode: 0xe2

test-description: The kernel contains a set of "self tests" under the tools/testing/selftests/ directory. These are intended to be small unit tests to exercise individual code paths in the kernel.
test-url: https://www.kernel.org/doc/Documentation/kselftest.txt


on test machine: 4 threads Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz with 32G memory

caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):



If you fix the issue, kindly add following tag
Reported-by: kernel test robot <oliver.sang@...el.com>


[  222.094341] BUG: unable to handle page fault for address: ffffffff83ccffe0
[  222.101155] #PF: supervisor read access in kernel mode
[  222.106246] #PF: error_code(0x0000) - not-present page
[  222.111336] PGD 81b429067 P4D 81b429067 PUD 81b42a063 PMD 81d3ff063 PTE 800ffff7e3f30062
[  222.119351] Oops: 0000 [#1] PREEMPT SMP PTI
[  222.123497] CPU: 2 PID: 5694 Comm: ftracetest Not tainted 5.13.0-rc1-00009-ge7bf1ba97afd #1
[  222.131770] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.8.1 12/05/2017
[  222.139095] RIP: 0010:insn_get_prefixes (kbuild/src/consumer/arch/x86/lib/insn.c:245) 
[ 222.144459] Code: cc cc cc cc cc 0f 1f 44 00 00 41 55 31 c0 41 54 55 53 48 8b 57 68 48 89 fb 48 8b 77 60 48 8d 4a 01 eb 1b 0f b6 b8 e5 f9 48 82 <40> 38 3c 02 75 17 48 83 c0 01 48 83 f8 05 0f 84 e8 01 00 00 48 8d
All code
========
   0:	cc                   	int3   
   1:	cc                   	int3   
   2:	cc                   	int3   
   3:	cc                   	int3   
   4:	cc                   	int3   
   5:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
   a:	41 55                	push   %r13
   c:	31 c0                	xor    %eax,%eax
   e:	41 54                	push   %r12
  10:	55                   	push   %rbp
  11:	53                   	push   %rbx
  12:	48 8b 57 68          	mov    0x68(%rdi),%rdx
  16:	48 89 fb             	mov    %rdi,%rbx
  19:	48 8b 77 60          	mov    0x60(%rdi),%rsi
  1d:	48 8d 4a 01          	lea    0x1(%rdx),%rcx
  21:	eb 1b                	jmp    0x3e
  23:	0f b6 b8 e5 f9 48 82 	movzbl -0x7db7061b(%rax),%edi
  2a:*	40 38 3c 02          	cmp    %dil,(%rdx,%rax,1)		<-- trapping instruction
  2e:	75 17                	jne    0x47
  30:	48 83 c0 01          	add    $0x1,%rax
  34:	48 83 f8 05          	cmp    $0x5,%rax
  38:	0f 84 e8 01 00 00    	je     0x226
  3e:	48                   	rex.W
  3f:	8d                   	.byte 0x8d

Code starting with the faulting instruction
===========================================
   0:	40 38 3c 02          	cmp    %dil,(%rdx,%rax,1)
   4:	75 17                	jne    0x1d
   6:	48 83 c0 01          	add    $0x1,%rax
   a:	48 83 f8 05          	cmp    $0x5,%rax
   e:	0f 84 e8 01 00 00    	je     0x1fc
  14:	48                   	rex.W
  15:	8d                   	.byte 0x8d
[  222.163056] RSP: 0018:ffffc90002337ba8 EFLAGS: 00010202
[  222.168230] RAX: 0000000000000000 RBX: ffffc90002337c50 RCX: ffffffff83ccffe1
[  222.175299] RDX: ffffffff83ccffe0 RSI: ffffffff83ccffef RDI: 000000000000000f
[  222.182367] RBP: ffffffff83ccffe0 R08: ffffc90002337c50 R09: 0000000000000001
[  222.189432] R10: 0000000000000003 R11: ffffffffc05af000 R12: ffffffffc05af000
[  222.196519] R13: ffffffffc05af000 R14: ffff8888135f8228 R15: 0000000000000000
[  222.203587] FS:  00007f9114dab740(0000) GS:ffff88881dd00000(0000) knlGS:0000000000000000
[  222.211605] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  222.217308] CR2: ffffffff83ccffe0 CR3: 00000008124fe006 CR4: 00000000003706e0
[  222.224385] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  222.231465] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  222.238556] Call Trace:
[  222.240982] ? mem_cgroup_swap_init (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/memcontrol.h:613 kbuild/src/consumer/mm/memcontrol.c:7313) 
[  222.245211]  ? 0xffffffffc05af000
[  222.248495]  ? 0xffffffffc05af000
[  222.251777] insn_get_opcode (kbuild/src/consumer/arch/x86/lib/insn.c:272) 
[  222.255576] ? mem_cgroup_swap_init (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/memcontrol.h:613 kbuild/src/consumer/mm/memcontrol.c:7313) 
[  222.259807] insn_get_modrm (kbuild/src/consumer/arch/x86/lib/insn.c:343) 
[  222.263522] ? mem_cgroup_swap_init (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/memcontrol.h:613 kbuild/src/consumer/mm/memcontrol.c:7313) 
[  222.267750] insn_get_sib (kbuild/src/consumer/arch/x86/lib/insn.c:421) 
[  222.271209] insn_get_displacement (kbuild/src/consumer/arch/x86/lib/insn.c:464) 
[  222.275527] insn_get_immediate (kbuild/src/consumer/arch/x86/lib/insn.c:632) 
[  222.279585] insn_get_length (kbuild/src/consumer/arch/x86/lib/insn.c:707) 
[  222.283298] insn_decode (kbuild/src/consumer/arch/x86/lib/insn.c:747) 
[  222.286668] arch_jump_entry_size (kbuild/src/consumer/arch/x86/kernel/jump_label.c:27) 
[  222.290815] ? mem_cgroup_swap_init (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/memcontrol.h:613 kbuild/src/consumer/mm/memcontrol.c:7313) 
[  222.295045] ? mem_cgroup_swap_init (kbuild/src/consumer/mm/memcontrol.c:7316) 
[  222.299362] ? mem_cgroup_swap_init (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/memcontrol.h:613 kbuild/src/consumer/mm/memcontrol.c:7313) 
[  222.303592] jump_label_text_reserved (kbuild/src/consumer/kernel/jump_label.c:312 kbuild/src/consumer/kernel/jump_label.c:325 kbuild/src/consumer/kernel/jump_label.c:791) 
[  222.308170] register_kprobe (kbuild/src/consumer/kernel/kprobes.c:2052) 
[  222.312660] register_trace_kprobe (kbuild/src/consumer/kernel/trace/trace_kprobe.c:655) 
[  222.317063] __trace_kprobe_create (kbuild/src/consumer/kernel/trace/trace_kprobe.c:889) 
[  222.321468] ? register_trace_kprobe (kbuild/src/consumer/kernel/trace/trace_kprobe.c:715) 
[  222.326055] ? probes_profile_seq_show (kbuild/src/consumer/kernel/trace/trace_kprobe.c:922) 
[  222.330631] trace_probe_create (kbuild/src/consumer/kernel/trace/trace_probe.c:1148) 
[  222.334603] create_or_delete_trace_kprobe (kbuild/src/consumer/kernel/trace/trace_kprobe.c:926) 
[  222.339527] trace_parse_run_command (kbuild/src/consumer/kernel/trace/trace.c:9778) 
[  222.344017] vfs_write (kbuild/src/consumer/fs/read_write.c:603) 
[  222.347303] ksys_write (kbuild/src/consumer/fs/read_write.c:658) 
[  222.350672] do_syscall_64 (kbuild/src/consumer/arch/x86/entry/common.c:47) 
[  222.354213] entry_SYSCALL_64_after_hwframe (kbuild/src/consumer/arch/x86/entry/entry_64.S:112) 
[  222.359217] RIP: 0033:0x7f9114e98504
[ 222.362758] Code: 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b3 0f 1f 80 00 00 00 00 48 8d 05 f9 61 0d 00 8b 00 85 c0 75 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 41 54 49 89 d4 55 48 89 f5 53
All code
========
   0:	00 f7                	add    %dh,%bh
   2:	d8 64 89 02          	fsubs  0x2(%rcx,%rcx,4)
   6:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
   d:	eb b3                	jmp    0xffffffffffffffc2
   f:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
  16:	48 8d 05 f9 61 0d 00 	lea    0xd61f9(%rip),%rax        # 0xd6216
  1d:	8b 00                	mov    (%rax),%eax
  1f:	85 c0                	test   %eax,%eax
  21:	75 13                	jne    0x36
  23:	b8 01 00 00 00       	mov    $0x1,%eax
  28:	0f 05                	syscall 
  2a:*	48 3d 00 f0 ff ff    	cmp    $0xfffffffffffff000,%rax		<-- trapping instruction
  30:	77 54                	ja     0x86
  32:	c3                   	retq   
  33:	0f 1f 00             	nopl   (%rax)
  36:	41 54                	push   %r12
  38:	49 89 d4             	mov    %rdx,%r12
  3b:	55                   	push   %rbp
  3c:	48 89 f5             	mov    %rsi,%rbp
  3f:	53                   	push   %rbx

Code starting with the faulting instruction
===========================================
   0:	48 3d 00 f0 ff ff    	cmp    $0xfffffffffffff000,%rax
   6:	77 54                	ja     0x5c
   8:	c3                   	retq   
   9:	0f 1f 00             	nopl   (%rax)
   c:	41 54                	push   %r12
   e:	49 89 d4             	mov    %rdx,%r12
  11:	55                   	push   %rbp
  12:	48 89 f5             	mov    %rsi,%rbp
  15:	53                   	push   %rbx


To reproduce:

        git clone https://github.com/intel/lkp-tests.git
        cd lkp-tests
        bin/lkp install                job.yaml  # job file is attached in this email
        bin/lkp split-job --compatible job.yaml  # generate the yaml file for lkp run
        bin/lkp run                    generated-yaml-file



---
0DAY/LKP+ Test Infrastructure                   Open Source Technology Center
https://lists.01.org/hyperkitty/list/lkp@lists.01.org       Intel Corporation

Thanks,
Oliver Sang


View attachment "config-5.13.0-rc1-00009-ge7bf1ba97afd" of type "text/plain" (174903 bytes)

View attachment "job-script" of type "text/plain" (7140 bytes)

Download attachment "dmesg.xz" of type "application/x-xz" (30728 bytes)

View attachment "job.yaml" of type "text/plain" (6138 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ