From: Harry Yoo <harry@kernel.org>
To: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Hans de Goede <hansg@kernel.org>,
linux-media@vger.kernel.org
Subject: Re: Linux 7.0-rc4: v4l2src0:src: page allocation failure - increased memory usage in 7.0?
Date: Mon, 23 Mar 2026 13:45:53 +0900 [thread overview]
Message-ID: <acDFSf04Gqmk8lva@hyeyoo> (raw)
In-Reply-To: <ab1Ujqcsv4Eh1vIa@mail-itl>
On Fri, Mar 20, 2026 at 03:07:10PM +0100, Marek Marczykowski-Górecki wrote:
> On Fri, Mar 20, 2026 at 10:01:33AM +0900, Harry Yoo wrote:
> > On Thu, Mar 19, 2026 at 01:18:18AM +0100, Marek Marczykowski-Górecki wrote:
> > > Hello,
> > >
> > > When testing 7.0-rc4 (and also got it with 7.0-rc1), I got page
> > > allocation failure in uvcvideo when using v4l2 camera in a VM. The setup
> > > is rather memory constrained - it's a HVM with just 300MB of memory
> > > running on Xen, with PCI passthrough of USB controllers (to which an USB
> > > camera is connected). But the very same setup works just fine with older
> > > kernel (last known good is 6.19.5, built with the same config).
> >
> > Could you please share what /proc/meminfo looks like on v6.19, and
> > also enable memory allocation profiling feature [1] and see
> > what has changed between v6.19 and v7.0?
> >
> > On v6.19, you should be able to see how much memory is allocated by
> > reading /proc/allocinfo.
> >
> > On v7.0-rc4, warn_alloc() should let memory allocation profiling
> > print top users.
> >
> > [1] https://docs.kernel.org/mm/allocation-profiling.html
>
> Thanks, this got me some more info (below). That said, I think I spoke
> too soon about 6.19.5 - the page allocation failure happens there too,
> just without follow up crash, and v4l2 generally works afterwards (maybe
> few initial frames got lost? not sure) - so, I haven't noticed it
> before. So, it doesn't look like increased memory usage anymore.
Oh ok. So the allocation failure has already been there and the only new
part is handling of the failure.
> The message:
>
> [ 30.986973] v4l2src0:src: page allocation failure: order:5, mode:0xcc0(GFP_KERNEL), nodemask=(null),cpuset=/,mems_allowed=0
> [ 30.987035] CPU: 1 UID: 1000 PID: 1256 Comm: v4l2src0:src Not tainted 6.19.5-1.qubes.42.fc41.x86_64 #1 PREEMPT(full)
> [ 30.987038] Hardware name: Xen HVM domU, BIOS 4.19.4 02/20/2026
> [ 30.987039] Call Trace:
> [ 30.987041] <TASK>
> [ 30.987044] dump_stack_lvl+0x5d/0x80
> [ 30.987049] warn_alloc+0x162/0x190
> [ 30.987052] ? __alloc_pages_direct_compact+0x1bc/0x220
> [ 30.987054] __alloc_pages_slowpath.constprop.0+0x566/0x9b0
> [ 30.987056] ? kernfs_next_descendant_post+0x1b/0xe0
> [ 30.987059] __alloc_frozen_pages_noprof+0x31b/0x330
> [ 30.987062] __alloc_pages_noprof+0xe/0x20
> [ 30.987063] __dma_direct_alloc_pages.isra.0+0x1b2/0x3b0
> [ 30.987066] dma_direct_alloc_pages+0x3f/0x190
> [ 30.987068] alloc_single_sgt+0x12a/0x200
> [ 30.987071] dma_alloc_noncontiguous+0x49/0x150
> [ 30.987074] usb_alloc_noncoherent+0x45/0xa0
> [ 30.987079] uvc_alloc_urb_buffers.part.0+0x95/0x130 [uvcvideo]
> [ 30.987092] uvc_video_start_transfer+0x19d/0x4e0 [uvcvideo]
> [ 30.987100] uvc_video_start_streaming+0x9c/0x140 [uvcvideo]
> [ 30.987107] uvc_start_streaming_video+0x58/0x100 [uvcvideo]
> [ 30.987116] vb2_start_streaming+0x63/0x130 [videobuf2_common]
> [ 30.987123] vb2_core_streamon+0x98/0xf0 [videobuf2_common]
> [ 30.987128] ? vb2_ioctl_streamon+0x15/0x60 [videobuf2_v4l2]
> [ 30.987133] __video_do_ioctl+0x419/0x540 [videodev]
> [ 30.987155] video_usercopy+0x286/0x690 [videodev]
> [ 30.987168] ? __pfx___video_do_ioctl+0x10/0x10 [videodev]
> [ 30.987181] v4l2_ioctl+0x6b/0xa0 [videodev]
> [ 30.987194] __x64_sys_ioctl+0x96/0xe0
> [ 30.987198] do_syscall_64+0x84/0x6c0
> [ 30.987201] ? __handle_mm_fault+0x470/0x700
> [ 30.987204] ? count_memcg_events+0xdd/0x1a0
> [ 30.987207] ? handle_mm_fault+0x220/0x340
> [ 30.987209] ? do_user_addr_fault+0x2c3/0x7f0
> [ 30.987212] ? irqentry_exit+0x7a/0x510
> [ 30.987214] entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [ 30.987216] RIP: 0033:0x7953bd8838db
> [ 30.987219] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [ 30.987220] RSP: 002b:00007953abffea90 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 30.987222] RAX: ffffffffffffffda RBX: 00007953a0008620 RCX: 00007953bd8838db
> [ 30.987224] RDX: 000000002f404da0 RSI: 0000000040045612 RDI: 0000000000000013
> [ 30.987225] RBP: 000000002f404d90 R08: 00007953a000a9e0 R09: 0000000000000040
> [ 30.987225] R10: 00007953a000aa10 R11: 0000000000000246 R12: 0000000000000000
> [ 30.987226] R13: 00007953a0008638 R14: 0000000000000004 R15: 00007953a0008620
> [ 30.987228] </TASK>
> [ 30.987263] Mem-Info:
> [ 30.987939] active_anon:3060 inactive_anon:1925 isolated_anon:0
> [ 30.987939] active_file:5208 inactive_file:3901 isolated_file:0
> [ 30.987939] unevictable:0 dirty:8 writeback:0
> [ 30.987939] slab_reclaimable:2569 slab_unreclaimable:12482
> [ 30.987939] mapped:5743 shmem:33 pagetables:1341
> [ 30.987939] sec_pagetables:0 bounce:0
> [ 30.987939] kernel_misc_reclaimable:0
> [ 30.987939] free:2402 free_pcp:115 free_cma:0
From 7.0.0:
[ 739.193907] Mem-Info:
[ 739.194897] active_anon:362 inactive_anon:3172 isolated_anon:0
[ 739.194897] active_file:2498 inactive_file:11687 isolated_file:1
[ 739.194897] unevictable:0 dirty:0 writeback:4
[ 739.194897] slab_reclaimable:3707 slab_unreclaimable:10022
[ 739.194897] mapped:4710 shmem:9 pagetables:1021
[ 739.194897] sec_pagetables:0 bounce:0
[ 739.194897] kernel_misc_reclaimable:0
[ 739.194897] free:3452 free_pcp:1 free_cma:0
6.19.0->7.0.0:
{active,inactive,isolate}_anon: 4985 -> 3534 pages (- 5,804 KiB)
{active,inactive,isolated}_file: 9109 -> 13729 pages (+ 18,480 KiB)
anon+file: 14094 -> 17263 pages (+ 12,676 KiB)
slab_{reclaimable,unreclaimable}: 15051 -> 13729 pages (- 5,288 KiB)
free{,_pcp,_cma}: 2517 -> 3453 pages (+ 3,744 KiB)
Nothing surprising here.
--
Cheers,
Harry / Hyeonggon
> [ 30.988045] Node 0 active_anon:12240kB inactive_anon:7700kB active_file:20832kB inactive_file:15604kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:22972kB dirty:32kB writeback:0kB shmem:132kB shmem_thp:0kB shmem_pmdmapped:0kB anon_thp:0kB kernel_stack:3392kB pagetables:5364kB sec_pagetables:0kB all_unreclaimable? no Balloon:16384kB
> [ 30.988123] Node 0 DMA free:904kB boost:0kB min:132kB low:164kB high:196kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1408kB inactive_anon:300kB active_file:368kB inactive_file:3664kB unevictable:0kB writepending:0kB zspages:0kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 30.988199] lowmem_reserve[]: 0 194 194 194 194
> [ 30.988227] Node 0 DMA32 free:8704kB boost:0kB min:1716kB low:2144kB high:2572kB reserved_highatomic:0KB free_highatomic:0KB active_anon:10832kB inactive_anon:7400kB active_file:20464kB inactive_file:11940kB unevictable:0kB writepending:32kB zspages:0kB present:274148kB managed:199276kB mlocked:0kB bounce:0kB free_pcp:456kB local_pcp:0kB free_cma:0kB
> [ 30.988305] lowmem_reserve[]: 0 0 0 0 0
> [ 30.988319] Node 0 DMA: 4*4kB (UM) 31*8kB (UM) 16*16kB (UM) 4*32kB (UM) 4*64kB (UM) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 904kB
> [ 30.988365] Node 0 DMA32: 604*4kB (UM) 524*8kB (UM) 108*16kB (UM) 10*32kB (UM) 1*64kB (U) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 8720kB
> [ 30.988422] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
> [ 30.988448] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
> [ 30.988472] 11692 total pagecache pages
> [ 30.988483] 2568 pages in swap cache
> [ 30.988494] Free swap = 891356kB
> [ 30.988505] Total swap = 1048572kB
> [ 30.988516] 72535 pages RAM
> [ 30.988524] 0 pages HighMem/MovableOnly
> [ 30.988535] 18876 pages reserved
> [ 30.988546] 0 pages cma reserved
> [ 30.988557] 0 pages hwpoisoned
> [ 30.988768] Memory allocations (profiling is currently turned on):
> [ 30.988789] 38.4 MiB 5505 mm/slub.c:3075 func:alloc_slab_page
> [ 30.988809] 33.0 MiB 8448 drivers/block/xen-blkfront.c:322 [xen_blkfront] func:fill_grant_buffer
> [ 30.988834] 31.9 MiB 7943 mm/readahead.c:189 func:ractl_alloc_folio
> [ 30.988852] 16.0 MiB 4096 drivers/xen/balloon.c:445 func:decrease_reservation
> [ 30.988873] 15.9 MiB 4064 drivers/media/common/videobuf2/videobuf2-vmalloc.c:47 [videobuf2_vmalloc] func:vb2_vmalloc_alloc
> [ 30.988905] 11.4 MiB 2924 mm/swap_state.c:439 func:__read_swap_cache_async
> [ 30.988926] 10.5 MiB 2904 mm/execmem.c:41 func:execmem_vmalloc
> [ 30.988944] 7.36 MiB 116 security/apparmor/policy_unpack.c:1361 func:compress_zstd
> [ 30.988966] 5.70 MiB 171 security/apparmor/policy_unpack.c:689 func:unpack_perms_table
> [ 30.989002] 5.57 MiB 1427 mm/memory.c:1191 func:folio_prealloc
prev parent reply other threads:[~2026-03-23 4:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-19 0:18 Linux 7.0-rc4: v4l2src0:src: page allocation failure - increased memory usage in 7.0? Marek Marczykowski-Górecki
2026-03-19 10:19 ` Ricardo Ribalda
2026-03-20 0:35 ` Marek Marczykowski-Górecki
2026-03-20 1:07 ` Laurent Pinchart
2026-03-20 7:48 ` Ricardo Ribalda
2026-03-19 15:16 ` Nicolas Dufresne
2026-03-20 1:01 ` Harry Yoo
2026-03-20 14:07 ` Marek Marczykowski-Górecki
2026-03-23 4:45 ` Harry Yoo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acDFSf04Gqmk8lva@hyeyoo \
--to=harry@kernel.org \
--cc=hansg@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=marmarek@invisiblethingslab.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.