From: Andrew Morton <akpm@linux-foundation.org>
To: syzbot <syzbot+54f6a8926b40a171f2c8@syzkaller.appspotmail.com>
Cc: david@kernel.org, gourry@gourry.net, joshua.hahnjy@gmail.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
rakie.kim@sk.com, syzkaller-bugs@googlegroups.com,
ying.huang@linux.alibaba.com, ziy@nvidia.com,
linux-ext4@vger.kernel.org, Vlastimil Babka <vbabka@suse.cz>,
Barry Song <baohua@kernel.org>, Theodore Ts'o <tytso@mit.edu>
Subject: Re: [syzbot] [mm?] WARNING in shrink_one
Date: Mon, 19 Oct 2026 16:46:38 -0700 [thread overview]
Message-ID: <20261019164638.c33e70eaefbee802eefb4716@linux-foundation.org> (raw)
In-Reply-To: <6ad67231.a20cb897.960b0.0042.GAE@google.com>
On Mon, 19 Oct 2026 12:40:33 -0700 syzbot <syzbot+54f6a8926b40a171f2c8@syzkaller.appspotmail.com> wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: a0ff06b3a7bd Merge tag 'firewire-fixes-7.3-final' of git:/..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=12cdb20d580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=44ac479246d4559b
> dashboard link: https://syzkaller.appspot.com/bug?extid=54f6a8926b40a171f2c8
> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> userspace arch: i386
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-a0ff06b3.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/3f4bcbceb92e/vmlinux-a0ff06b3.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/bf4df8252e54/bzImage-a0ff06b3.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+54f6a8926b40a171f2c8@syzkaller.appspotmail.com
>
> ------------[ cut here ]------------
> current->flags & PF_MEMALLOC
> WARNING: mm/page_alloc.c:4816 at __alloc_pages_slowpath mm/page_alloc.c:4816 [inline], CPU#3: syz-executor/5706
> WARNING: mm/page_alloc.c:4816 at __alloc_frozen_pages_noprof+0x1eac/0x3300 mm/page_alloc.c:5449, CPU#3: syz-executor/5706
Thanks. The stack trace is missing important bits for some reason, but
it appears to be ext4 disagreeing with page reclaim.
__alloc_pages_slowpath():
if (unlikely(nofail)) {
/*
* We don't support __GFP_NOFAIL without __GFP_DIRECT_RECLAIM,
* otherwise, we may result in lockup.
*/
WARN_ON_ONCE(!can_direct_reclaim);
/*
* PF_MEMALLOC request from this context is rather bizarre
* because we cannot reclaim anything and only can loop waiting
* for somebody to do a work for us.
*/
-->> WARN_ON_ONCE(current->flags & PF_MEMALLOC);
}
The electrical think machine said:
filemap_fault()
-> direct reclaim
-> shrink_slab()
-> super_cache_scan()
-> prune_icache_sb()
-> evict()
-> ext4_evict_inode()
-> ext4_clear_inode()
-> ext4_discard_preallocations()
-> ext4_mb_load_buddy_gfp(
GFP_NOFS | __GFP_NOFAIL)
-> __filemap_get_folio()
-> page allocator
-> WARN_ON(PF_MEMALLOC)
The task enters direct reclaim after a filemap allocation failure.
Reclaim calls shrink_slab(), which evicts an ext4 inode via
super_cache_scan() and prune_icache_sb(). The eviction path eventually
calls ext4_discard_preallocations(), which explicitly does:
err = ext4_mb_load_buddy_gfp(sb, group, &e4b,
GFP_NOFS | __GFP_NOFAIL);
If the buddy-cache folio isn't resident, ext4_mb_load_buddy_gfp()
allocates one through __filemap_get_folio(). This reaches
__alloc_pages_slowpath() with __GFP_NOFAIL while PF_MEMALLOC is set,
triggering the warning.
Simply removing __GFP_NOFAIL doesn't look safe. The preallocations
have already been detached from the inode's tree, and failure to load
the buddy information can prevent their space from being released
correctly.
It seems that ext4 needs a way to complete this mandatory cleanup
without performing a NOFAIL allocation from the slab-shrinker context.
Perhaps the preallocation cleanup could be restructured so that it
doesn't require allocating buddy-cache folios during reclaim?
The syzbot report is at:
https://syzkaller.appspot.com/bug?extid=54f6a8926b40a171f2c8
next prev parent reply other threads:[~2026-10-19 23:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-19 19:40 syzbot
2026-10-19 23:46 ` Andrew Morton [this message]
2026-10-20 0:35 ` Barry Song
2026-10-20 1:25 ` Shakeel Butt
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=20261019164638.c33e70eaefbee802eefb4716@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=david@kernel.org \
--cc=gourry@gourry.net \
--cc=joshua.hahnjy@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rakie.kim@sk.com \
--cc=syzbot+54f6a8926b40a171f2c8@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=tytso@mit.edu \
--cc=vbabka@suse.cz \
--cc=ying.huang@linux.alibaba.com \
--cc=ziy@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®