Re: [PATCH] alloc_tag: Handle incomplete bulk allocations in vm_module_tags_populate
From: T.J. Mercier
Date: Wed Apr 09 2025 - 17:49:34 EST
On Wed, Apr 9, 2025 at 2:08 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Wed, 9 Apr 2025 19:54:47 +0000 "T.J. Mercier" <tjmercier@xxxxxxxxxx> wrote:
>
> > alloc_pages_bulk_node may partially succeed and allocate fewer than the
> > requested nr_pages. There are several conditions under which this can
> > occur, but we have encountered the case where CONFIG_PAGE_OWNER is
> > enabled causing all bulk allocations to always fallback to single page
> > allocations due to commit 187ad460b841 ("mm/page_alloc: avoid page
> > allocator recursion with pagesets.lock held").
> >
> > Currently vm_module_tags_populate immediately fails when
> > alloc_pages_bulk_node returns fewer than the requested number of pages.
> > This patch causes vm_module_tags_populate to retry bulk allocations for
> > the remaining memory instead.
>
> Please describe the userspace-visible runtime effects of this change. In a way
> which permits a user who is experiencing some problem can recognize that this
> patch will address that problem.
The userspace visible effect is that memory allocation profiling will
get disabled when the bulk allocation is incomplete, for example:
[ 14.297583] [9: modprobe: 465] Failed to allocate memory for
allocation tags in the module scsc_wlan. Memory allocation profiling
is disabled!
[ 14.299339] [9: modprobe: 465] modprobe: Failed to insmod
'/vendor/lib/modules/scsc_wlan.ko' with args '': Out of memory