linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [linux-next:master] [mm]  a0f2295a60: WARNING:at_mm/vma.c:#vma_merge_new_range
@ 2024-08-27  6:55 kernel test robot
  2024-08-27 11:43 ` Lorenzo Stoakes
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2024-08-27  6:55 UTC (permalink / raw)
  To: Lorenzo Stoakes
  Cc: oe-lkp, lkp, Linux Memory Management List, Andrew Morton,
	Bert Karwatzki, Jiri Olsa, Kees Cook, Liam R. Howlett,
	Lorenzo Stoakes, Matthew Wilcox, Paul E. McKenney, Paul Moore,
	Sidhartha Kumar, Suren Baghdasaryan, Vlastimil Babka,
	linux-kernel, oliver.sang



Hello,

kernel test robot noticed "WARNING:at_mm/vma.c:#vma_merge_new_range" on:

commit: a0f2295a607c0e8a64893593432562444a58a70b ("mm: avoid using vma_merge() for new VMAs")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

in testcase: trinity
version: trinity-i386-abe9de86-1_20230429
with following parameters:

	runtime: 600s



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

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


+------------------------------------------+------------+------------+
|                                          | dfe2897d43 | a0f2295a60 |
+------------------------------------------+------------+------------+
| WARNING:at_mm/rmap.c:#unlink_anon_vmas   | 6          | 6          |
| EIP:unlink_anon_vmas                     | 6          | 6          |
| WARNING:at_mm/vma.c:#vma_merge_new_range | 0          | 6          |
| EIP:vma_merge_new_range                  | 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@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202408271452.c842a71d-lkp@intel.com


[   28.048325][  T765] ------------[ cut here ]------------
[ 28.048597][ T765] WARNING: CPU: 0 PID: 765 at mm/vma.c:524 vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[   28.048976][  T765] Modules linked in: mousedev input_leds evbug led_class aesni_intel rapl psmouse pcspkr evdev i2c_piix4 qemu_fw_cfg i2c_smbus i2c_core button
[   28.049662][  T765] CPU: 0 UID: 65534 PID: 765 Comm: trinity-c4 Tainted: G        W          6.11.0-rc4-00372-ga0f2295a607c #2
[   28.050163][  T765] Tainted: [W]=WARN
[   28.050339][  T765] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 28.050789][ T765] EIP: vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[ 28.051028][ T765] Code: 8b 53 14 85 d2 0f 84 51 ff ff ff 8d b4 26 00 00 00 00 0f 0b 8b 4b 04 8b 45 f0 3b 41 04 0f 83 48 ff ff ff 8d b4 26 00 00 00 00 <0f> 0b e9 3a ff ff ff 8d b4 26 00 00 00 00 66 90 84 c0 0f 85 b6 00
All code
========
   0:	8b 53 14             	mov    0x14(%rbx),%edx
   3:	85 d2                	test   %edx,%edx
   5:	0f 84 51 ff ff ff    	je     0xffffffffffffff5c
   b:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  12:	0f 0b                	ud2
  14:	8b 4b 04             	mov    0x4(%rbx),%ecx
  17:	8b 45 f0             	mov    -0x10(%rbp),%eax
  1a:	3b 41 04             	cmp    0x4(%rcx),%eax
  1d:	0f 83 48 ff ff ff    	jae    0xffffffffffffff6b
  23:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  2a:*	0f 0b                	ud2		<-- trapping instruction
  2c:	e9 3a ff ff ff       	jmp    0xffffffffffffff6b
  31:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  38:	66 90                	xchg   %ax,%ax
  3a:	84 c0                	test   %al,%al
  3c:	0f                   	.byte 0xf
  3d:	85                   	.byte 0x85
  3e:	b6 00                	mov    $0x0,%dh

Code starting with the faulting instruction
===========================================
   0:	0f 0b                	ud2
   2:	e9 3a ff ff ff       	jmp    0xffffffffffffff41
   7:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
   e:	66 90                	xchg   %ax,%ax
  10:	84 c0                	test   %al,%al
  12:	0f                   	.byte 0xf
  13:	85                   	.byte 0x85
  14:	b6 00                	mov    $0x0,%dh
[   28.052072][  T765] EAX: 00400000 EBX: ed937b48 ECX: ed937b20 EDX: 00000000
[   28.052420][  T765] ESI: 00000000 EDI: ecb925a0 EBP: ed937b00 ESP: ed937ad8
[   28.052728][  T765] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 EFLAGS: 00010287
[   28.053082][  T765] CR0: 80050033 CR2: b76e3580 CR3: 2db75bc0 CR4: 000406b0
[   28.058945][  T765] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[   28.059252][  T765] DR6: fffe0ff0 DR7: 00000400
[   28.059459][  T765] Call Trace:
[ 28.059606][ T765] ? show_regs (arch/x86/kernel/dumpstack.c:479 arch/x86/kernel/dumpstack.c:465) 
[ 28.059796][ T765] ? vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[ 28.060030][ T765] ? __warn (kernel/panic.c:735) 
[ 28.060210][ T765] ? vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[ 28.060446][ T765] ? report_bug (lib/bug.c:201 lib/bug.c:219) 
[ 28.060651][ T765] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 28.060899][ T765] ? handle_bug (arch/x86/kernel/traps.c:218) 
[ 28.063802][ T765] ? exc_invalid_op (arch/x86/kernel/traps.c:260 (discriminator 1)) 
[ 28.064013][ T765] ? handle_exception (arch/x86/entry/entry_32.S:1054) 
[ 28.064231][ T765] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 28.064432][ T765] ? vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[ 28.064666][ T765] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 28.064870][ T765] ? vma_merge_new_range (mm/vma.c:524 (discriminator 1)) 
[ 28.065124][ T765] copy_vma (mm/vma.c:1563) 
[ 28.065326][ T765] move_vma+0x121/0x4d8 
[ 28.065557][ T765] ? mm_get_unmapped_area (mm/mmap.c:930) 
[ 28.065792][ T765] mremap_to+0x138/0x1b0 
[ 28.066054][ T765] __do_sys_mremap (mm/mremap.c:1176) 
[ 28.066270][ T765] ? __lock_release+0x55/0x150 
[ 28.066509][ T765] __ia32_sys_mremap (mm/mremap.c:980) 
[ 28.066720][ T765] ia32_sys_call (arch/x86/entry/syscall_32.c:44) 
[ 28.066923][ T765] __do_fast_syscall_32 (arch/x86/entry/common.c:165 arch/x86/entry/common.c:386) 
[ 28.067146][ T765] ? __lock_acquire (kernel/locking/lockdep.c:5142) 
[ 28.067365][ T765] ? find_held_lock (kernel/locking/lockdep.c:5249) 
[ 28.067575][ T765] ? __lock_release+0x55/0x150 
[ 28.067812][ T765] ? __do_fast_syscall_32 (arch/x86/entry/common.c:391) 
[ 28.068041][ T765] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 28.068282][ T765] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4420) 
[ 28.068511][ T765] ? syscall_exit_to_user_mode (kernel/entry/common.c:221) 
[ 28.068763][ T765] ? __do_fast_syscall_32 (arch/x86/entry/common.c:391) 
[ 28.069004][ T765] ? do_pte_missing (mm/memory.c:5056 mm/memory.c:5195 mm/memory.c:3955) 
[ 28.069236][ T765] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 28.069477][ T765] ? handle_pte_fault (mm/memory.c:5530) 
[ 28.069701][ T765] ? mt_find (include/linux/rcupdate.h:336 include/linux/rcupdate.h:869 lib/maple_tree.c:6960) 
[ 28.069889][ T765] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 28.077572][ T765] ? __perf_sw_event (kernel/events/internal.h:227 kernel/events/core.c:9996 kernel/events/core.c:10021) 
[ 28.078055][ T765] ? __up_read (kernel/locking/rwsem.c:1354) 
[ 28.078245][ T765] ? __up_read (kernel/locking/rwsem.c:1354) 
[ 28.078435][ T765] ? debug_smp_processor_id (lib/smp_processor_id.c:61) 
[ 28.078670][ T765] ? __up_read (kernel/locking/rwsem.c:1354) 
[ 28.078859][ T765] ? __up_read (kernel/locking/rwsem.c:1354) 
[ 28.079050][ T765] ? trace_preempt_on (kernel/trace/trace_preemptirq.c:105) 
[ 28.079265][ T765] ? __up_read (kernel/locking/rwsem.c:1354) 
[ 28.079456][ T765] ? preempt_count_sub (kernel/sched/core.c:5672 kernel/sched/core.c:5668 kernel/sched/core.c:5690) 
[ 28.079677][ T765] ? irqentry_exit (kernel/entry/common.c:367) 
[ 28.079881][ T765] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67) 
[ 28.080126][ T765] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4420) 
[ 28.080356][ T765] ? irqentry_exit_to_user_mode (kernel/entry/common.c:234) 
[ 28.080612][ T765] do_fast_syscall_32 (arch/x86/entry/common.c:411) 
[ 28.080827][ T765] do_SYSENTER_32 (arch/x86/entry/common.c:450) 
[ 28.081065][ T765] entry_SYSENTER_32 (arch/x86/entry/entry_32.S:836) 
[   28.081284][  T765] EIP: 0xb7f41579
[ 28.081446][ T765] Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d 76 00 58 b8 77 00 00 00 cd 80 90 8d 76
All code
========
   0:	b8 01 10 06 03       	mov    $0x3061001,%eax
   5:	74 b4                	je     0xffffffffffffffbb
   7:	01 10                	add    %edx,(%rax)
   9:	07                   	(bad)
   a:	03 74 b0 01          	add    0x1(%rax,%rsi,4),%esi
   e:	10 08                	adc    %cl,(%rax)
  10:	03 74 d8 01          	add    0x1(%rax,%rbx,8),%esi
	...
  20:	00 51 52             	add    %dl,0x52(%rcx)
  23:	55                   	push   %rbp
  24:*	89 e5                	mov    %esp,%ebp		<-- trapping instruction
  26:	0f 34                	sysenter
  28:	cd 80                	int    $0x80
  2a:	5d                   	pop    %rbp
  2b:	5a                   	pop    %rdx
  2c:	59                   	pop    %rcx
  2d:	c3                   	ret
  2e:	90                   	nop
  2f:	90                   	nop
  30:	90                   	nop
  31:	90                   	nop
  32:	8d 76 00             	lea    0x0(%rsi),%esi
  35:	58                   	pop    %rax
  36:	b8 77 00 00 00       	mov    $0x77,%eax
  3b:	cd 80                	int    $0x80
  3d:	90                   	nop
  3e:	8d                   	.byte 0x8d
  3f:	76                   	.byte 0x76

Code starting with the faulting instruction
===========================================
   0:	5d                   	pop    %rbp
   1:	5a                   	pop    %rdx
   2:	59                   	pop    %rcx
   3:	c3                   	ret
   4:	90                   	nop
   5:	90                   	nop
   6:	90                   	nop
   7:	90                   	nop
   8:	8d 76 00             	lea    0x0(%rsi),%esi
   b:	58                   	pop    %rax
   c:	b8 77 00 00 00       	mov    $0x77,%eax
  11:	cd 80                	int    $0x80
  13:	90                   	nop
  14:	8d                   	.byte 0x8d
  15:	76                   	.byte 0x76


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



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



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [linux-next:master] [mm]  a0f2295a60: WARNING:at_mm/vma.c:#vma_merge_new_range
  2024-08-27  6:55 [linux-next:master] [mm] a0f2295a60: WARNING:at_mm/vma.c:#vma_merge_new_range kernel test robot
@ 2024-08-27 11:43 ` Lorenzo Stoakes
  0 siblings, 0 replies; 2+ messages in thread
From: Lorenzo Stoakes @ 2024-08-27 11:43 UTC (permalink / raw)
  To: kernel test robot
  Cc: oe-lkp, lkp, Linux Memory Management List, Andrew Morton,
	Bert Karwatzki, Jiri Olsa, Kees Cook, Liam R. Howlett,
	Lorenzo Stoakes, Matthew Wilcox, Paul E. McKenney, Paul Moore,
	Sidhartha Kumar, Suren Baghdasaryan, Vlastimil Babka,
	linux-kernel

On Tue, Aug 27, 2024 at 02:55:45PM GMT, kernel test robot wrote:
>
>
> Hello,
>
> kernel test robot noticed "WARNING:at_mm/vma.c:#vma_merge_new_range" on:
>
> commit: a0f2295a607c0e8a64893593432562444a58a70b ("mm: avoid using vma_merge() for new VMAs")
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
>
> in testcase: trinity

[snip]

> [   28.048325][  T765] ------------[ cut here ]------------
> [ 28.048597][ T765] WARNING: CPU: 0 PID: 765 at mm/vma.c:524 vma_merge_new_range (mm/vma.c:524 (discriminator 1))

Hi, thanks for the report.

For the record this is the following CONFIG_DEBUG_VM check:

	/* vmi must point at or before the gap. */
	VM_WARN_ON(vma_iter_addr(vmg->vmi) > end);

Which I was able to determine fired due to copy_vma() unnecessarily
advancing the iterator if no previous VMA exists.

I have provided a fix-patch at [0] which should land in -next soon and
resolve this issue.

[0]:https://lore.kernel.org/linux-mm/c0ef6b6a-1c9b-4da2-a180-c8e1c73b1c28@lucifer.local/

[snip]


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-27 11:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-27  6:55 [linux-next:master] [mm] a0f2295a60: WARNING:at_mm/vma.c:#vma_merge_new_range kernel test robot
2024-08-27 11:43 ` Lorenzo Stoakes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox