Re: [PATCH] alloc_tag: Handle incomplete bulk allocations in vm_module_tags_populate
From: Kent Overstreet
Date: Wed Apr 09 2025 - 17:57:51 EST
On Wed, Apr 09, 2025 at 02:51:18PM -0700, T.J. Mercier wrote:
> On Wed, Apr 9, 2025 at 2:11 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Wed, 9 Apr 2025 14:08:48 -0700 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.
> > >
> > > ...
> > >
> > > Reported-by: Janghyuck Kim <janghyuck.kim@xxxxxxxxxxx>
> >
> > A Closes: link will presumably help with the above info. checkpatch
> > now warns about the absence of a Closes:
>
> Hi Andrew, This was reported on our internal bug tracker so there is
> no public link I can provide here. If it's better not to add a
> Reported-by in this case, then I will do that in the future.
In that case perhaps cut and paste the info from your internal bug
tracker?
Commit messages can include quite a bit more than just a short
description of the commit, when it's relevant - e.g. I try to include
the literal log of the oops being fixed when appropriate.
It really helps when looking at things weeks or months later and trying
to remember "ok, exactly what was that code path I need to watch out
for?"