Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* "alloc_tag was not set" when running mm/ksft_hmm.sh
@ 2026-05-06 15:42 Zenghui Yu
  2026-05-08 11:53 ` David Hildenbrand (Arm)
  0 siblings, 1 reply; 3+ messages in thread
From: Zenghui Yu @ 2026-05-06 15:42 UTC (permalink / raw)
  To: linux-mm, linux-kernel
  Cc: jgg, leon, Andrew Morton, david, ljs, liam, vbabka, rppt, surenb,
	mhocko

Hi all,

Running mm/ksft_hmm.sh triggers the following splat:

 ------------[ cut here ]------------
 alloc_tag was not set
 WARNING: ./include/linux/alloc_tag.h:164 at ___free_pages+0x2a0/0x2d0,
CPU#5: hmm-tests/2020
 Modules linked in: test_hmm rfkill drm backlight fuse
 CPU: 5 UID: 0 PID: 2020 Comm: hmm-tests Kdump: loaded Not tainted
7.1.0-rc2-00099-gadc1e5c6203c-dirty #285 PREEMPT
 Hardware name: QEMU QEMU Virtual Machine, BIOS
edk2-stable202408-prebuilt.qemu.org 08/13/2024
 pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
 pc : ___free_pages+0x2a0/0x2d0
 lr : ___free_pages+0x2a0/0x2d0
 sp : ffff80008345b530
 x29: ffff80008345b530 x28: ffff80008345b700 x27: ffffffffbfff8040
 x26: ffff0000c41cb360 x25: ffff0000c0c64008 x24: ffff800081aae400
 x23: 05ffff0000000200 x22: 0000000000000000 x21: 0000000000000000
 x20: fffffdffc5f20040 x19: 0000000000000000 x18: fffffffffffe7c78
 x17: 0000000000000000 x16: 0000000000000000 x15: fffffffffffe7c98
 x14: 00000000000001d1 x13: ffff8000818f3d58 x12: 0000000000000573
 x11: fffffffffffe7c98 x10: ffff80008194bd58 x9 : 3ffffffffffff000
 x8 : ffff8000818f3d58 x7 : ffff80008194bd58 x6 : 0000000000000000
 x5 : ffff0001fedb1088 x4 : 0000000000000001 x3 : 0000000000000000
 x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000c7f58000
 Call trace:
  ___free_pages+0x2a0/0x2d0 (P)
  __free_pages+0x14/0x20
  dmirror_devmem_free+0x13c/0x158 [test_hmm]
  free_zone_device_folio+0x144/0x1e4
  __folio_put+0x124/0x130
  free_folio_and_swap_cache+0xa8/0xcc
  __folio_split+0x664/0x7fc
  split_folio_to_list+0x50/0x5c
  migrate_vma_split_folio+0x13c/0x25c
  migrate_vma_collect_pmd+0xed4/0xf68
  walk_pgd_range+0x598/0x9a0
  __walk_page_range+0x90/0x1a0
  walk_page_range_mm_unsafe+0x194/0x20c
  walk_page_range+0x20/0x2c
  migrate_vma_setup+0x18c/0x224
  dmirror_devmem_fault+0x188/0x2b8 [test_hmm]
  do_swap_page+0x1458/0x185c
  __handle_mm_fault+0x85c/0x1ba0
  handle_mm_fault+0xb0/0x290
  do_page_fault+0x1f8/0x6f8
  do_translation_fault+0x60/0x6c
  do_mem_abort+0x44/0x94
  el0_da+0x30/0xdc
  el0t_64_sync_handler+0xd0/0xe4
  el0t_64_sync+0x198/0x19c
 ---[ end trace 0000000000000000 ]---
 lib/test_hmm.c:705 module test_hmm func:dmirror_devmem_alloc_page has
16744448 allocated at module unload


It was tested on kernel built with arm64's virt.config and

+CONFIG_ZONE_DEVICE=y
+CONFIG_DEVICE_PRIVATE=y
+CONFIG_TEST_HMM=m
+CONFIG_MEM_ALLOC_PROFILING=y
+CONFIG_MEM_ALLOC_PROFILING_DEBUG=y

Thanks,
Zenghui


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

* Re: "alloc_tag was not set" when running mm/ksft_hmm.sh
  2026-05-06 15:42 "alloc_tag was not set" when running mm/ksft_hmm.sh Zenghui Yu
@ 2026-05-08 11:53 ` David Hildenbrand (Arm)
  2026-05-08 16:35   ` Alistair Popple
  0 siblings, 1 reply; 3+ messages in thread
From: David Hildenbrand (Arm) @ 2026-05-08 11:53 UTC (permalink / raw)
  To: Zenghui Yu, linux-mm, linux-kernel
  Cc: jgg, leon, Andrew Morton, ljs, liam, vbabka, rppt, surenb, mhocko,
	Alistair Popple

On 5/6/26 17:42, Zenghui Yu wrote:
> Hi all,
> 
> Running mm/ksft_hmm.sh triggers the following splat:
> 
>  ------------[ cut here ]------------
>  alloc_tag was not set
>  WARNING: ./include/linux/alloc_tag.h:164 at ___free_pages+0x2a0/0x2d0,
> CPU#5: hmm-tests/2020
>  Modules linked in: test_hmm rfkill drm backlight fuse
>  CPU: 5 UID: 0 PID: 2020 Comm: hmm-tests Kdump: loaded Not tainted
> 7.1.0-rc2-00099-gadc1e5c6203c-dirty #285 PREEMPT
>  Hardware name: QEMU QEMU Virtual Machine, BIOS
> edk2-stable202408-prebuilt.qemu.org 08/13/2024
>  pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
>  pc : ___free_pages+0x2a0/0x2d0
>  lr : ___free_pages+0x2a0/0x2d0
>  sp : ffff80008345b530
>  x29: ffff80008345b530 x28: ffff80008345b700 x27: ffffffffbfff8040
>  x26: ffff0000c41cb360 x25: ffff0000c0c64008 x24: ffff800081aae400
>  x23: 05ffff0000000200 x22: 0000000000000000 x21: 0000000000000000
>  x20: fffffdffc5f20040 x19: 0000000000000000 x18: fffffffffffe7c78
>  x17: 0000000000000000 x16: 0000000000000000 x15: fffffffffffe7c98
>  x14: 00000000000001d1 x13: ffff8000818f3d58 x12: 0000000000000573
>  x11: fffffffffffe7c98 x10: ffff80008194bd58 x9 : 3ffffffffffff000
>  x8 : ffff8000818f3d58 x7 : ffff80008194bd58 x6 : 0000000000000000
>  x5 : ffff0001fedb1088 x4 : 0000000000000001 x3 : 0000000000000000
>  x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000c7f58000
>  Call trace:
>   ___free_pages+0x2a0/0x2d0 (P)
>   __free_pages+0x14/0x20
>   dmirror_devmem_free+0x13c/0x158 [test_hmm]
>   free_zone_device_folio+0x144/0x1e4
>   __folio_put+0x124/0x130
>   free_folio_and_swap_cache+0xa8/0xcc
>   __folio_split+0x664/0x7fc
>   split_folio_to_list+0x50/0x5c
>   migrate_vma_split_folio+0x13c/0x25c
>   migrate_vma_collect_pmd+0xed4/0xf68
>   walk_pgd_range+0x598/0x9a0
>   __walk_page_range+0x90/0x1a0
>   walk_page_range_mm_unsafe+0x194/0x20c
>   walk_page_range+0x20/0x2c
>   migrate_vma_setup+0x18c/0x224
>   dmirror_devmem_fault+0x188/0x2b8 [test_hmm]
>   do_swap_page+0x1458/0x185c
>   __handle_mm_fault+0x85c/0x1ba0
>   handle_mm_fault+0xb0/0x290
>   do_page_fault+0x1f8/0x6f8
>   do_translation_fault+0x60/0x6c
>   do_mem_abort+0x44/0x94
>   el0_da+0x30/0xdc
>   el0t_64_sync_handler+0xd0/0xe4
>   el0t_64_sync+0x198/0x19c
>  ---[ end trace 0000000000000000 ]---
>  lib/test_hmm.c:705 module test_hmm func:dmirror_devmem_alloc_page has
> 16744448 allocated at module unload
> 
> 
> It was tested on kernel built with arm64's virt.config and
> 
> +CONFIG_ZONE_DEVICE=y
> +CONFIG_DEVICE_PRIVATE=y
> +CONFIG_TEST_HMM=m
> +CONFIG_MEM_ALLOC_PROFILING=y
> +CONFIG_MEM_ALLOC_PROFILING_DEBUG=y

I assume there is a weird interaction between alloc tags and simulated
ZONE_DEVICE memory in test_hmm.c

@Alistair, any idea?

-- 
Cheers,

David


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

* Re: "alloc_tag was not set" when running mm/ksft_hmm.sh
  2026-05-08 11:53 ` David Hildenbrand (Arm)
@ 2026-05-08 16:35   ` Alistair Popple
  0 siblings, 0 replies; 3+ messages in thread
From: Alistair Popple @ 2026-05-08 16:35 UTC (permalink / raw)
  To: David Hildenbrand (Arm)
  Cc: Zenghui Yu, linux-mm, linux-kernel, jgg, leon, Andrew Morton, ljs,
	liam, vbabka, rppt, surenb, mhocko

On 2026-05-08 at 21:53 +1000, "David Hildenbrand (Arm)" <david@kernel.org> wrote...
> On 5/6/26 17:42, Zenghui Yu wrote:
> > Hi all,
> > 
> > Running mm/ksft_hmm.sh triggers the following splat:
> > 
> >  ------------[ cut here ]------------
> >  alloc_tag was not set
> >  WARNING: ./include/linux/alloc_tag.h:164 at ___free_pages+0x2a0/0x2d0,
> > CPU#5: hmm-tests/2020
> >  Modules linked in: test_hmm rfkill drm backlight fuse
> >  CPU: 5 UID: 0 PID: 2020 Comm: hmm-tests Kdump: loaded Not tainted
> > 7.1.0-rc2-00099-gadc1e5c6203c-dirty #285 PREEMPT
> >  Hardware name: QEMU QEMU Virtual Machine, BIOS
> > edk2-stable202408-prebuilt.qemu.org 08/13/2024
> >  pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
> >  pc : ___free_pages+0x2a0/0x2d0
> >  lr : ___free_pages+0x2a0/0x2d0
> >  sp : ffff80008345b530
> >  x29: ffff80008345b530 x28: ffff80008345b700 x27: ffffffffbfff8040
> >  x26: ffff0000c41cb360 x25: ffff0000c0c64008 x24: ffff800081aae400
> >  x23: 05ffff0000000200 x22: 0000000000000000 x21: 0000000000000000
> >  x20: fffffdffc5f20040 x19: 0000000000000000 x18: fffffffffffe7c78
> >  x17: 0000000000000000 x16: 0000000000000000 x15: fffffffffffe7c98
> >  x14: 00000000000001d1 x13: ffff8000818f3d58 x12: 0000000000000573
> >  x11: fffffffffffe7c98 x10: ffff80008194bd58 x9 : 3ffffffffffff000
> >  x8 : ffff8000818f3d58 x7 : ffff80008194bd58 x6 : 0000000000000000
> >  x5 : ffff0001fedb1088 x4 : 0000000000000001 x3 : 0000000000000000
> >  x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000c7f58000
> >  Call trace:
> >   ___free_pages+0x2a0/0x2d0 (P)
> >   __free_pages+0x14/0x20
> >   dmirror_devmem_free+0x13c/0x158 [test_hmm]
> >   free_zone_device_folio+0x144/0x1e4
> >   __folio_put+0x124/0x130
> >   free_folio_and_swap_cache+0xa8/0xcc
> >   __folio_split+0x664/0x7fc
> >   split_folio_to_list+0x50/0x5c
> >   migrate_vma_split_folio+0x13c/0x25c
> >   migrate_vma_collect_pmd+0xed4/0xf68
> >   walk_pgd_range+0x598/0x9a0
> >   __walk_page_range+0x90/0x1a0
> >   walk_page_range_mm_unsafe+0x194/0x20c
> >   walk_page_range+0x20/0x2c
> >   migrate_vma_setup+0x18c/0x224
> >   dmirror_devmem_fault+0x188/0x2b8 [test_hmm]
> >   do_swap_page+0x1458/0x185c
> >   __handle_mm_fault+0x85c/0x1ba0
> >   handle_mm_fault+0xb0/0x290
> >   do_page_fault+0x1f8/0x6f8
> >   do_translation_fault+0x60/0x6c
> >   do_mem_abort+0x44/0x94
> >   el0_da+0x30/0xdc
> >   el0t_64_sync_handler+0xd0/0xe4
> >   el0t_64_sync+0x198/0x19c
> >  ---[ end trace 0000000000000000 ]---
> >  lib/test_hmm.c:705 module test_hmm func:dmirror_devmem_alloc_page has
> > 16744448 allocated at module unload
> > 
> > 
> > It was tested on kernel built with arm64's virt.config and
> > 
> > +CONFIG_ZONE_DEVICE=y
> > +CONFIG_DEVICE_PRIVATE=y
> > +CONFIG_TEST_HMM=m
> > +CONFIG_MEM_ALLOC_PROFILING=y
> > +CONFIG_MEM_ALLOC_PROFILING_DEBUG=y
> 
> I assume there is a weird interaction between alloc tags and simulated
> ZONE_DEVICE memory in test_hmm.c
> 
> @Alistair, any idea?

I haven't managed to reproduce this but could imagine that would be the problem
- not sure page_ext is supported for ZONE_DEVICE PRIVATE pages.

I'm still travelling back from LSFMM so will take a closer look next week.
Thanks!

 - Alistair

> -- 
> Cheers,
> 
> David


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

end of thread, other threads:[~2026-05-08 16:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-06 15:42 "alloc_tag was not set" when running mm/ksft_hmm.sh Zenghui Yu
2026-05-08 11:53 ` David Hildenbrand (Arm)
2026-05-08 16:35   ` Alistair Popple

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