Re: [jlayton:mgtime] [tmpfs] 6602c8010f: BUG:unable_to_handle_page_fault_for_address

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

 



On Sun, 2024-07-14 at 19:02 +0800, kernel test robot wrote:
> 
> Hello,
> 
> kernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:
> 
> commit: 6602c8010ff4cabd759599c11175fa4d1bcd7800 ("tmpfs: add support for multigrain timestamps")
> https://git.kernel.org/cgit/linux/kernel/git/jlayton/linux.git mgtime
> 
> in testcase: boot
> 
> compiler: gcc-13
> test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G
> 
> (please refer to attached dmesg/kmsg for entire log/backtrace)
> 
> 
> +---------------------------------------------+------------+------------+
> >                                             | ff453163c6 | 6602c8010f |
> +---------------------------------------------+------------+------------+
> > boot_successes                              | 6          | 0          |
> > boot_failures                               | 0          | 7          |
> > BUG:unable_to_handle_page_fault_for_address | 0          | 7          |
> > Oops                                        | 0          | 7          |
> > EIP:percpu_counter_add_batch                | 0          | 7          |
> > Kernel_panic-not_syncing:Fatal_exception    | 0          | 7          |
> +---------------------------------------------+------------+------------+
> 
> 
> 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/202407141802.19588609-lkp@xxxxxxxxx
> 
> 
> [    0.638478][    T0] BUG: unable to handle page fault for address: 20c4e000
> [    0.639256][    T0] #PF: supervisor read access in kernel mode
> [    0.639920][    T0] #PF: error_code(0x0000) - not-present page
> [    0.640224][    T0] *pdpt = 0000000000000000 *pde = 0000000000000000
> [    0.640224][    T0] Oops: Oops: 0000 [#1] PREEMPT SMP PTI
> [    0.640224][    T0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.10.0-rc7-00242-g6602c8010ff4 #1
> [    0.640224][    T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
> [ 0.640224][ T0] EIP: percpu_counter_add_batch (lib/percpu_counter.c:93 (discriminator 4)) 
> [ 0.640224][ T0] Code: 00 8b 5d f4 8b 75 f8 8b 7d fc 89 ec 5d 31 c0 31 d2 31 c9 e9 3e 7d 8b 00 8d b4 26 00 00 00 00 8d 76 00 e8 f7 22 91 ff 8b 4b 3c <64> 8b 01 89 45 e0 89 c6 89 c7 c1 ff 1f 03 75 ec 13 7d f0 89 f2 f7
> All code
> ========
>    0:	00 8b 5d f4 8b 75    	add    %cl,0x758bf45d(%rbx)
>    6:	f8                   	clc
>    7:	8b 7d fc             	mov    -0x4(%rbp),%edi
>    a:	89 ec                	mov    %ebp,%esp
>    c:	5d                   	pop    %rbp
>    d:	31 c0                	xor    %eax,%eax
>    f:	31 d2                	xor    %edx,%edx
>   11:	31 c9                	xor    %ecx,%ecx
>   13:	e9 3e 7d 8b 00       	jmp    0x8b7d56
>   18:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
>   1f:	8d 76 00             	lea    0x0(%rsi),%esi
>   22:	e8 f7 22 91 ff       	call   0xffffffffff91231e
>   27:	8b 4b 3c             	mov    0x3c(%rbx),%ecx
>   2a:*	64 8b 01             	mov    %fs:(%rcx),%eax		<-- trapping instruction
>   2d:	89 45 e0             	mov    %eax,-0x20(%rbp)
>   30:	89 c6                	mov    %eax,%esi
>   32:	89 c7                	mov    %eax,%edi
>   34:	c1 ff 1f             	sar    $0x1f,%edi
>   37:	03 75 ec             	add    -0x14(%rbp),%esi
>   3a:	13 7d f0             	adc    -0x10(%rbp),%edi
>   3d:	89 f2                	mov    %esi,%edx
>   3f:	f7                   	.byte 0xf7
> 
> Code starting with the faulting instruction
> ===========================================
>    0:	64 8b 01             	mov    %fs:(%rcx),%eax
>    3:	89 45 e0             	mov    %eax,-0x20(%rbp)
>    6:	89 c6                	mov    %eax,%esi
>    8:	89 c7                	mov    %eax,%edi
>    a:	c1 ff 1f             	sar    $0x1f,%edi
>    d:	03 75 ec             	add    -0x14(%rbp),%esi
>   10:	13 7d f0             	adc    -0x10(%rbp),%edi
>   13:	89 f2                	mov    %esi,%edx
>   15:	f7                   	.byte 0xf7
> [    0.640224][    T0] EAX: 00000000 EBX: c38590e0 ECX: 00000000 EDX: 00000000
> [    0.640224][    T0] ESI: c3d440d8 EDI: c28d9e20 EBP: c28d9d68 ESP: c28d9d48
> [    0.640224][    T0] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00210046
> [    0.640224][    T0] CR0: 80050033 CR2: 20c4e000 CR3: 03112000 CR4: 000406b0
> [    0.640224][    T0] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
> [    0.640224][    T0] DR6: fffe0ff0 DR7: 00000400
> [    0.640224][    T0] Call Trace:
> [ 0.640224][ T0] ? show_regs (arch/x86/kernel/dumpstack.c:479) 
> [ 0.640224][ T0] ? __die (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:434) 
> [ 0.640224][ T0] ? oops_enter (kernel/panic.c:582 kernel/panic.c:640) 
> [ 0.640224][ T0] ? page_fault_oops (arch/x86/mm/fault.c:715 (discriminator 1)) 
> [ 0.640224][ T0] ? kernelmode_fixup_or_oops+0x78/0x94 
> [ 0.640224][ T0] ? __bad_area_nosemaphore+0x145/0x280 
> [ 0.640224][ T0] ? coarse_ctime (fs/inode.c:2164) 
> [ 0.640224][ T0] ? kvm_sched_clock_read (arch/x86/kernel/kvmclock.c:91 (discriminator 2)) 
> [ 0.640224][ T0] ? sched_clock_noinstr (arch/x86/kernel/tsc.c:267) 
> [ 0.640224][ T0] ? local_clock_noinstr (kernel/sched/clock.c:270 kernel/sched/clock.c:306) 
> [ 0.640224][ T0] ? bad_area_nosemaphore (arch/x86/mm/fault.c:835) 
> [ 0.640224][ T0] ? do_user_addr_fault (arch/x86/mm/fault.c:1452) 
> [ 0.640224][ T0] ? coarse_ctime (fs/inode.c:2164) 
> [ 0.640224][ T0] ? local_clock (arch/x86/include/asm/preempt.h:94 (discriminator 1) kernel/sched/clock.c:316 (discriminator 1)) 
> [ 0.640224][ T0] ? exc_page_fault (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 arch/x86/mm/fault.c:1489 arch/x86/mm/fault.c:1539) 
> [ 0.640224][ T0] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) 
> [ 0.640224][ T0] ? handle_exception (arch/x86/entry/entry_32.S:1047) 
> [ 0.640224][ T0] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) 
> [ 0.640224][ T0] ? percpu_counter_add_batch (lib/percpu_counter.c:93 (discriminator 4)) 
> [ 0.640224][ T0] ? pvclock_clocksource_read_nowd (arch/x86/mm/fault.c:1494) 
> [ 0.640224][ T0] ? percpu_counter_add_batch (lib/percpu_counter.c:93 (discriminator 4)) 
> [ 0.640224][ T0] inode_set_ctime_current (fs/inode.c:2681) 

Ahh, looks like I'm initializing the percpu vars a bit too late
(late_initcall). I'll move the initialization to fs_initcall().


> [ 0.640224][ T0] ? get_random_u32 (drivers/char/random.c:532 (discriminator 1)) 
> [ 0.640224][ T0] ? _raw_spin_unlock (arch/x86/include/asm/preempt.h:94 (discriminator 1) include/linux/spinlock_api_smp.h:143 (discriminator 1) kernel/locking/spinlock.c:186 (discriminator 1)) 
> [ 0.640224][ T0] simple_inode_init_ts (fs/libfs.c:2101) 
> [ 0.640224][ T0] __shmem_get_inode (mm/shmem.c:2526 (discriminator 3)) 
> [ 0.640224][ T0] shmem_get_inode (mm/shmem.c:2586 (discriminator 1)) 
> [ 0.640224][ T0] shmem_fill_super (mm/shmem.c:4432 (discriminator 1)) 
> [ 0.640224][ T0] ? shmem_add_to_page_cache+0x2dc/0x2dc 
> [ 0.640224][ T0] get_tree_nodev (fs/super.c:1270 fs/super.c:1288) 
> [ 0.640224][ T0] shmem_get_tree (mm/shmem.c:4451) 
> [ 0.640224][ T0] vfs_get_tree (fs/super.c:1790) 
> [ 0.640224][ T0] vfs_kern_mount (fs/namespace.c:1281) 
> [ 0.640224][ T0] kern_mount (fs/namespace.c:5487 (discriminator 1)) 
> [ 0.640224][ T0] shmem_init (mm/shmem.c:4686 (discriminator 1)) 
> [ 0.640224][ T0] ? shmem_parse_one (mm/shmem.c:4500) 
> [ 0.640224][ T0] mnt_init (fs/namespace.c:5471) 
> [ 0.640224][ T0] ? files_init (fs/file_table.c:519) 
> [ 0.640224][ T0] vfs_caches_init (fs/dcache.c:3217) 
> [ 0.640224][ T0] start_kernel (init/main.c:1086) 
> [ 0.640224][ T0] ? obsolete_checksetup (init/main.c:544) 
> [ 0.640224][ T0] i386_start_kernel (arch/x86/kernel/head32.c:69) 
> [ 0.640224][ T0] startup_32_smp (arch/x86/kernel/head_32.S:292) 
> [    0.640224][    T0] Modules linked in:
> [    0.640224][    T0] CR2: 0000000020c4e000
> [    0.640224][    T0] ---[ end trace 0000000000000000 ]---
> [ 0.640224][ T0] EIP: percpu_counter_add_batch (lib/percpu_counter.c:93 (discriminator 4)) 
> [ 0.640224][ T0] Code: 00 8b 5d f4 8b 75 f8 8b 7d fc 89 ec 5d 31 c0 31 d2 31 c9 e9 3e 7d 8b 00 8d b4 26 00 00 00 00 8d 76 00 e8 f7 22 91 ff 8b 4b 3c <64> 8b 01 89 45 e0 89 c6 89 c7 c1 ff 1f 03 75 ec 13 7d f0 89 f2 f7
> All code
> ========
>    0:	00 8b 5d f4 8b 75    	add    %cl,0x758bf45d(%rbx)
>    6:	f8                   	clc
>    7:	8b 7d fc             	mov    -0x4(%rbp),%edi
>    a:	89 ec                	mov    %ebp,%esp
>    c:	5d                   	pop    %rbp
>    d:	31 c0                	xor    %eax,%eax
>    f:	31 d2                	xor    %edx,%edx
>   11:	31 c9                	xor    %ecx,%ecx
>   13:	e9 3e 7d 8b 00       	jmp    0x8b7d56
>   18:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
>   1f:	8d 76 00             	lea    0x0(%rsi),%esi
>   22:	e8 f7 22 91 ff       	call   0xffffffffff91231e
>   27:	8b 4b 3c             	mov    0x3c(%rbx),%ecx
>   2a:*	64 8b 01             	mov    %fs:(%rcx),%eax		<-- trapping instruction
>   2d:	89 45 e0             	mov    %eax,-0x20(%rbp)
>   30:	89 c6                	mov    %eax,%esi
>   32:	89 c7                	mov    %eax,%edi
>   34:	c1 ff 1f             	sar    $0x1f,%edi
>   37:	03 75 ec             	add    -0x14(%rbp),%esi
>   3a:	13 7d f0             	adc    -0x10(%rbp),%edi
>   3d:	89 f2                	mov    %esi,%edx
>   3f:	f7                   	.byte 0xf7
> 
> Code starting with the faulting instruction
> ===========================================
>    0:	64 8b 01             	mov    %fs:(%rcx),%eax
>    3:	89 45 e0             	mov    %eax,-0x20(%rbp)
>    6:	89 c6                	mov    %eax,%esi
>    8:	89 c7                	mov    %eax,%edi
>    a:	c1 ff 1f             	sar    $0x1f,%edi
>    d:	03 75 ec             	add    -0x14(%rbp),%esi
>   10:	13 7d f0             	adc    -0x10(%rbp),%edi
>   13:	89 f2                	mov    %esi,%edx
>   15:	f7                   	.byte 0xf7
> 
> 
> The kernel config and materials to reproduce are available at:
> https://download.01.org/0day-ci/archive/20240714/202407141802.19588609-lkp@xxxxxxxxx
> 
> 
> 

-- 
Jeff Layton <jlayton@xxxxxxxxxx>





[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