Skip to content

netfs: Fix missing alloc tagging of direct mempool allocations - #2660

Closed
vfsci-bot[bot] wants to merge 1 commit into
vfs.base.cifrom
pw/1170923/vfs.base.ci
Closed

vfsci-bot[bot] wants to merge 1 commit into
vfs.base.cifrom
pw/1170923/vfs.base.ci

Conversation

@vfsci-bot

@vfsci-bot vfsci-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown

Series: https://patchwork.kernel.org/project/linux-fsdevel/list/?series=1170923
Submitter: Hao Ge
Version: 1
Patches: 1/1
Message-ID: <20260922023541.51532-1-hao.ge@linux.dev>
Base: vfs.base.ci
Lore: https://lore.kernel.org/linux-fsdevel/20260922023541.51532-1-hao.ge@linux.dev


Automated by ml2pr

Commit 1d78d56 ("netfs: Fix folio_queue ENOMEM in writeback by
adding a mempool") added a mempool for the folio_queues and made the
request, subrequest and folio_queue allocations distinguish between
writeback and everything else.  Writeback is part of memory reclaim
and must not fail due to ENOMEM, so it allocates under GFP_NOFS
through mempool_alloc(), which may dip into the pool's reserve and,
if that runs empty, wait for elements to be returned.  The
GFP_KERNEL paths, which can return -ENOMEM to their callers, invoke
the pool's ->alloc() callback directly instead.

The direct call, however, skips the alloc_hooks() wrapper that the
mempool_alloc() macro provides.  The pool callbacks, mempool_alloc_slab()
and mempool_kmalloc(), call kmem_cache_alloc_noprof() and kmalloc_noprof()
and rely on current->alloc_tag having been set by the caller.  With
CONFIG_MEM_ALLOC_PROFILING_DEBUG=y this leads to

    current->alloc_tag not set
    WARNING: ./include/linux/alloc_tag.h:161 at __alloc_tagging_slab_alloc_hook
    alloc_tag was not set
    WARNING: ./include/linux/alloc_tag.h:166 at __alloc_tagging_slab_free_hook

at allocation and free time respectively, as reported when reading
files on a CIFS mount.  The allocations are also missing from
/proc/allocinfo.

Wrap the direct ->alloc() invocations in alloc_hooks() with the new
netfs_mempool_alloc_noreserve() helper.  The GFP_KERNEL paths keep their
failable allocation semantics, they just get tagged now.

Fixes: 1d78d56 ("netfs: Fix folio_queue ENOMEM in writeback by adding a mempool")
Reported-by: Erhard Furtner <erhard_f@mailbox.org>
Closes: https://lore.kernel.org/all/0b004319-9ef7-437c-a4dd-174d6a9a83db@mailbox.org/
Tested-by: Erhard Furtner <erhard_f@mailbox.org>
Cc: stable@vger.kernel.org
Signed-off-by: Hao Ge <hao.ge@linux.dev>
@vfsci-bot

vfsci-bot Bot commented Sep 24, 2026

Copy link
Copy Markdown
Author

Superseded by series 1171930 (v2). Closing automatically.


Automated by ml2pr

@vfsci-bot vfsci-bot Bot closed this Sep 24, 2026
@vfsci-bot
vfsci-bot Bot deleted the pw/1170923/vfs.base.ci branch September 24, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants