答复: [mm] a65edf711f: BUG:kernel_NULL_pointer_dereference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I think it is should caused by an invalid stack_table as it is too early to run stack_depot_early_init. I have filed a new patch to fix.

________________________________________
发件人: kernel test robot <yujie.liu@xxxxxxxxx>
发送时间: 2022年9月30日 14:22
收件人: 黄朝阳 (Zhaoyang Huang)
抄送: lkp@xxxxxxxxxxxx; lkp@xxxxxxxxx; linux-mm@xxxxxxxxx; Andrew Morton; Catalin Marinas; Matthew Wilcox; Zhaoyang Huang; linux-kernel@xxxxxxxxxxxxxxx; 王科 (Ke Wang); 康纪滨 (Steve Kang)
主题: [mm] a65edf711f: BUG:kernel_NULL_pointer_dereference

注意: 这封邮件来自于外部。除非你确定邮件内容安全,否则不要点击任何链接和附件。
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.



Greeting,

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

commit: a65edf711f97a0a3764fc04b0301ab2e073992db ("[PATCH] mm: use stack_depot for recording kmemleak's backtrace")
url: https://github.com/intel-lab-lkp/linux/commits/zhaoyang-huang/mm-use-stack_depot-for-recording-kmemleak-s-backtrace/20220929-183243
base: https://git.kernel.org/cgit/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/linux-mm/1664447407-8821-1-git-send-email-zhaoyang.huang@xxxxxxxxxx

in testcase: boot

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

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


[    0.191645][    T0] BUG: kernel NULL pointer dereference, address: 0000000000000000
[    0.192360][    T0] #PF: supervisor read access in kernel mode
[    0.192862][    T0] #PF: error_code(0x0000) - not-present page
[    0.193371][    T0] PGD 0 P4D 0
[    0.193672][    T0] Oops: 0000 [#1] SMP PTI
[    0.194051][    T0] CPU: 0 PID: 0 Comm: swapper Not tainted 6.0.0-rc3-00706-ga65edf711f97 #26
[    0.194755][    T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-debian-1.16.0-4 04/01/2014
[ 0.195583][ T0] RIP: 0010:__stack_depot_save (kbuild/src/x86_64-2/lib/stackdepot.c:452)
[ 0.196081][ T0] Code: 03 48 c7 c7 ec 17 b3 84 e8 f1 ea 85 ff 44 89 e0 23 05 d4 aa 01 03 48 8d 04 c3 48 89 c3 48 89 c7 48 89 44 24 28 e8 34 fc 85 ff <4c> 8b 33 4d 85 f6 0f 84 b6 00 00 00 8b 04 24 83 e8 01 48 8d 04 c5
All code
========
   0:   03 48 c7                add    -0x39(%rax),%ecx
   3:   c7                      (bad)
   4:   ec                      in     (%dx),%al
   5:   17                      (bad)
   6:   b3 84                   mov    $0x84,%bl
   8:   e8 f1 ea 85 ff          callq  0xffffffffff85eafe
   d:   44 89 e0                mov    %r12d,%eax
  10:   23 05 d4 aa 01 03       and    0x301aad4(%rip),%eax        # 0x301aaea
  16:   48 8d 04 c3             lea    (%rbx,%rax,8),%rax
  1a:   48 89 c3                mov    %rax,%rbx
  1d:   48 89 c7                mov    %rax,%rdi
  20:   48 89 44 24 28          mov    %rax,0x28(%rsp)
  25:   e8 34 fc 85 ff          callq  0xffffffffff85fc5e
  2a:*  4c 8b 33                mov    (%rbx),%r14              <-- trapping instruction
  2d:   4d 85 f6                test   %r14,%r14
  30:   0f 84 b6 00 00 00       je     0xec
  36:   8b 04 24                mov    (%rsp),%eax
  39:   83 e8 01                sub    $0x1,%eax
  3c:   48                      rex.W
  3d:   8d                      .byte 0x8d
  3e:   04 c5                   add    $0xc5,%al

Code starting with the faulting instruction
===========================================
   0:   4c 8b 33                mov    (%rbx),%r14
   3:   4d 85 f6                test   %r14,%r14
   6:   0f 84 b6 00 00 00       je     0xc2
   c:   8b 04 24                mov    (%rsp),%eax
   f:   83 e8 01                sub    $0x1,%eax
  12:   48                      rex.W
  13:   8d                      .byte 0x8d
  14:   04 c5                   add    $0xc5,%al
[    0.197693][    T0] RSP: 0000:ffffffff83603ca8 EFLAGS: 00010046
[    0.198214][    T0] RAX: ffffffff83613cd8 RBX: 0000000000000000 RCX: ffffffff81b16d2c
[    0.198858][    T0] RDX: 0000000000000b1e RSI: 0000000000000000 RDI: 0000000000000000
[    0.199499][    T0] RBP: 00000000c5a6b597 R08: ffffffff8479d118 R09: 0000000000000000
[    0.200142][    T0] R10: 0000000000000004 R11: 0001ffffffffffff R12: 0000000027b2cd0a
[    0.200787][    T0] R13: 0000000000000003 R14: 000000004954f68c R15: ffffffff83603d54
[    0.201488][    T0] FS:  0000000000000000(0000) GS:ffffffff842c9000(0000) knlGS:0000000000000000
[    0.202247][    T0] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.202807][    T0] CR2: 0000000000000000 CR3: 000000000360a000 CR4: 00000000000406b0
[    0.203470][    T0] Call Trace:
[    0.203748][    T0]  <TASK>
[ 0.203996][ T0] stack_depot_save (kbuild/src/x86_64-2/lib/stackdepot.c:534)
[ 0.204406][ T0] set_track_prepare (kbuild/src/x86_64-2/mm/slub.c:752)
[ 0.204816][ T0] ? memblock_alloc_range_nid (kbuild/src/x86_64-2/mm/memblock.c:1424)
[ 0.205311][ T0] ? memblock_alloc_internal (kbuild/src/x86_64-2/mm/memblock.c:1514)
[ 0.205781][ T0] ? memblock_alloc_try_nid (kbuild/src/x86_64-2/mm/memblock.c:1614 (discriminator 3))
[ 0.206238][ T0] ? setup_command_line (kbuild/src/x86_64-2/init/main.c:631)
[ 0.206670][ T0] ? start_kernel (kbuild/src/x86_64-2/init/main.c:965)
[ 0.207068][ T0] ? secondary_startup_64_no_verify (kbuild/src/x86_64-2/arch/x86/kernel/head_64.S:358)
[ 0.207612][ T0] ? __raw_callee_save___native_queued_spin_unlock (??:?)
[ 0.208251][ T0] ? write_comp_data (kbuild/src/x86_64-2/kernel/kcov.c:236)
[ 0.208678][ T0] ? strncpy (kbuild/src/x86_64-2/lib/string.c:115)
[ 0.209040][ T0] __create_object (kbuild/src/x86_64-2/mm/kmemleak.c:681)
[ 0.209447][ T0] kmemleak_alloc_phys (kbuild/src/x86_64-2/mm/kmemleak.c:1212)
[ 0.209867][ T0] memblock_alloc_range_nid (kbuild/src/x86_64-2/mm/memblock.c:1424)
[ 0.210344][ T0] memblock_alloc_internal (kbuild/src/x86_64-2/mm/memblock.c:1514)
[ 0.210806][ T0] memblock_alloc_try_nid (kbuild/src/x86_64-2/mm/memblock.c:1614 (discriminator 3))
[ 0.211255][ T0] setup_command_line (kbuild/src/x86_64-2/init/main.c:631)
[ 0.211678][ T0] start_kernel (kbuild/src/x86_64-2/init/main.c:965)
[ 0.212063][ T0] ? load_ucode_bsp (kbuild/src/x86_64-2/arch/x86/kernel/cpu/microcode/core.c:176)
[ 0.212483][ T0] secondary_startup_64_no_verify (kbuild/src/x86_64-2/arch/x86/kernel/head_64.S:358)
[    0.212996][    T0]  </TASK>
[    0.213247][    T0] Modules linked in:
[    0.213591][    T0] CR2: 0000000000000000
[    0.213955][    T0] ---[ end trace 0000000000000000 ]---
[ 0.214415][ T0] RIP: 0010:__stack_depot_save (kbuild/src/x86_64-2/lib/stackdepot.c:452)
[ 0.214933][ T0] Code: 03 48 c7 c7 ec 17 b3 84 e8 f1 ea 85 ff 44 89 e0 23 05 d4 aa 01 03 48 8d 04 c3 48 89 c3 48 89 c7 48 89 44 24 28 e8 34 fc 85 ff <4c> 8b 33 4d 85 f6 0f 84 b6 00 00 00 8b 04 24 83 e8 01 48 8d 04 c5
All code
========
   0:   03 48 c7                add    -0x39(%rax),%ecx
   3:   c7                      (bad)
   4:   ec                      in     (%dx),%al
   5:   17                      (bad)
   6:   b3 84                   mov    $0x84,%bl
   8:   e8 f1 ea 85 ff          callq  0xffffffffff85eafe
   d:   44 89 e0                mov    %r12d,%eax
  10:   23 05 d4 aa 01 03       and    0x301aad4(%rip),%eax        # 0x301aaea
  16:   48 8d 04 c3             lea    (%rbx,%rax,8),%rax
  1a:   48 89 c3                mov    %rax,%rbx
  1d:   48 89 c7                mov    %rax,%rdi
  20:   48 89 44 24 28          mov    %rax,0x28(%rsp)
  25:   e8 34 fc 85 ff          callq  0xffffffffff85fc5e
  2a:*  4c 8b 33                mov    (%rbx),%r14              <-- trapping instruction
  2d:   4d 85 f6                test   %r14,%r14
  30:   0f 84 b6 00 00 00       je     0xec
  36:   8b 04 24                mov    (%rsp),%eax
  39:   83 e8 01                sub    $0x1,%eax
  3c:   48                      rex.W
  3d:   8d                      .byte 0x8d
  3e:   04 c5                   add    $0xc5,%al

Code starting with the faulting instruction
===========================================
   0:   4c 8b 33                mov    (%rbx),%r14
   3:   4d 85 f6                test   %r14,%r14
   6:   0f 84 b6 00 00 00       je     0xc2
   c:   8b 04 24                mov    (%rsp),%eax
   f:   83 e8 01                sub    $0x1,%eax
  12:   48                      rex.W
  13:   8d                      .byte 0x8d
  14:   04 c5                   add    $0xc5,%al


If you fix the issue, kindly add following tag
| Reported-by: kernel test robot <yujie.liu@xxxxxxxxx>
| Link: https://lore.kernel.org/r/202209301329.8c1446ee-yujie.liu@xxxxxxxxx


To reproduce:

        # build kernel
        cd linux
        cp config-6.0.0-rc3-00706-ga65edf711f97 .config
        make HOSTCC=gcc-11 CC=gcc-11 ARCH=x86_64 olddefconfig prepare modules_prepare bzImage modules
        make HOSTCC=gcc-11 CC=gcc-11 ARCH=x86_64 INSTALL_MOD_PATH=<mod-install-dir> modules_install
        cd <mod-install-dir>
        find lib/ | cpio -o -H newc --quiet | gzip > modules.cgz


        git clone https://github.com/intel/lkp-tests.git
        cd lkp-tests
        bin/lkp qemu -k <bzImage> -m modules.cgz job-script # job-script is attached in this email

        # if come across any failure that blocks the test,
        # please remove ~/.lkp and /lkp dir to run from a clean state.


--
0-DAY CI Kernel Test Service
https://01.org/lkp




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux