From: syzbot ci <syzbot+ci574de685c44b0d14@syzkaller.appspotmail.com>
To: syzkaller-upstream-moderation@googlegroups.com
Cc: syzbot@lists.linux.dev
Subject: [moderation/CI] Re: mm/mglru: fix lockless folio_putback_lru() race in evict_folios()
Date: Fri, 07 Aug 2026 09:41:42 -0700 [thread overview]
Message-ID: <6a760ac6.01d0871a.3a0d52.004e.GAE@google.com> (raw)
syzbot ci has tested the following series
[v1] mm/mglru: fix lockless folio_putback_lru() race in evict_folios()
https://lore.kernel.org/all/20260807-evict_folios_race-v1-1-b167c6b4cfde@oss.qualcomm.com
* [PATCH] mm/mglru: fix lockless folio_putback_lru() race in evict_folios()
and found the following issue:
possible deadlock in __folio_batch_add_and_move
Full report is available here:
https://ci.syzbot.org/series/84ef3e36-11bb-4ace-93cf-a1d457206afc
***
possible deadlock in __folio_batch_add_and_move
tree: linux-next
URL: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next
base: ea2bff00da89d7767d677bb68470130ba96f4928
arch: amd64
compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
config: https://ci.syzbot.org/builds/fefee38b-873a-46f2-b7ad-f80279b083f8/config
syz repro: https://ci.syzbot.org/findings/9a05a8ec-c7b9-47ec-8888-0383f37b235c/syz_repro
======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Not tainted
------------------------------------------------------
syz.0.17/5796 is trying to acquire lock:
ffff888121033c10 (lock#3){+.+.}-{3:3}, at: local_lock_acquire include/linux/local_lock_internal.h:46 [inline]
ffff888121033c10 (lock#3){+.+.}-{3:3}, at: __folio_batch_add_and_move+0x11a/0xc50 mm/folio.c:220
but task is already holding lock:
ffff888102ab6cb0 (&lruvec->lru_lock){....}-{3:3}, at: spin_lock_irq include/linux/spinlock.h:372 [inline]
ffff888102ab6cb0 (&lruvec->lru_lock){....}-{3:3}, at: evict_folios+0x3cf5/0x4970 mm/vmscan.c:4926
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&lruvec->lru_lock){....}-{3:3}:
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:132 [inline]
_raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:166
folio_lruvec_lock_irqsave+0x273/0x550 mm/memcontrol.c:1509
folio_lruvec_relock_irqsave include/linux/memcontrol.h:1567 [inline]
folio_batch_move_lru+0x6d3/0xa60 mm/folio.c:192
__folio_batch_add_and_move+0x510/0xc50 mm/folio.c:224
shmem_alloc_and_add_folio+0xcc2/0xf60 mm/shmem.c:2033
shmem_get_folio_gfp+0x5da/0x16d0 mm/shmem.c:2527
shmem_read_folio_gfp+0x8a/0xe0 mm/shmem.c:5964
drm_gem_get_pages+0x253/0x9c0 drivers/gpu/drm/drm_gem.c:695
drm_gem_shmem_get_pages_locked+0x22b/0x480 drivers/gpu/drm/drm_gem_shmem_helper.c:242
drm_gem_shmem_pin_locked+0x251/0x510 drivers/gpu/drm/drm_gem_shmem_helper.c:305
drm_gem_shmem_vmap_locked+0x487/0x7d0 drivers/gpu/drm/drm_gem_shmem_helper.c:409
drm_gem_vmap_locked drivers/gpu/drm/drm_gem.c:1421 [inline]
drm_gem_vmap+0x10a/0x1d0 drivers/gpu/drm/drm_gem.c:1463
drm_client_buffer_vmap+0x6c/0xb0 drivers/gpu/drm/drm_client.c:356
drm_fbdev_shmem_driver_fbdev_probe+0x280/0x930 drivers/gpu/drm/drm_fbdev_shmem.c:159
drm_fb_helper_single_fb_probe drivers/gpu/drm/drm_fb_helper.c:1544 [inline]
__drm_fb_helper_initial_config_and_unlock+0x148f/0x1b50 drivers/gpu/drm/drm_fb_helper.c:1725
drm_fbdev_client_hotplug+0x16c/0x230 drivers/gpu/drm/clients/drm_fbdev_client.c:66
drm_client_register+0x16e/0x200 drivers/gpu/drm/drm_client.c:143
drm_fbdev_client_setup+0x1a0/0x450 drivers/gpu/drm/clients/drm_fbdev_client.c:168
drm_client_setup+0x107/0x220 drivers/gpu/drm/clients/drm_client_setup.c:46
bochs_pci_probe+0xa9a/0xbb0 drivers/gpu/drm/tiny/bochs.c:776
local_pci_probe drivers/pci/pci-driver.c:354 [inline]
pci_call_probe drivers/pci/pci-driver.c:416 [inline]
__pci_device_probe drivers/pci/pci-driver.c:478 [inline]
pci_device_probe+0x48e/0xd10 drivers/pci/pci-driver.c:512
call_driver_probe drivers/base/dd.c:-1 [inline]
really_probe+0x254/0xae0 drivers/base/dd.c:706
__driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868
driver_probe_device+0x4f/0x240 drivers/base/dd.c:898
__driver_attach+0x339/0x600 drivers/base/dd.c:1292
bus_for_each_dev+0x23b/0x2c0 drivers/base/bus.c:383
bus_add_driver+0x345/0x670 drivers/base/bus.c:763
driver_register+0x23a/0x320 drivers/base/driver.c:174
do_one_initcall+0x250/0x870 init/main.c:1359
do_initcall_level+0x10a/0x1a0 init/main.c:1421
do_initcalls+0x59/0xa0 init/main.c:1437
kernel_init_freeable+0x29d/0x3e0 init/main.c:1672
kernel_init+0x22/0x1d0 init/main.c:1562
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
-> #0 (lock#3){+.+.}-{3:3}:
check_prev_add kernel/locking/lockdep.c:3181 [inline]
check_prevs_add kernel/locking/lockdep.c:3300 [inline]
validate_chain kernel/locking/lockdep.c:3924 [inline]
__lock_acquire+0x15ff/0x2e50 kernel/locking/lockdep.c:5254
lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5908
local_lock_acquire include/linux/local_lock_internal.h:46 [inline]
__folio_batch_add_and_move+0x132/0xc50 mm/folio.c:220
folio_putback_lru+0x18/0xe0 mm/vmscan.c:822
evict_folios+0x3cfd/0x4970 mm/vmscan.c:4927
try_to_shrink_lruvec+0xe3b/0x1340 mm/vmscan.c:5081
lru_gen_shrink_lruvec mm/vmscan.c:5226 [inline]
shrink_lruvec+0x54f/0x2c40 mm/vmscan.c:5986
shrink_node_memcgs mm/vmscan.c:6225 [inline]
shrink_node+0xa9b/0x3e30 mm/vmscan.c:6269
shrink_zones mm/vmscan.c:6508 [inline]
do_try_to_free_pages+0x6a3/0x1990 mm/vmscan.c:6570
try_to_free_mem_cgroup_pages+0x30d/0x830 mm/vmscan.c:6892
mem_cgroup_resize_max+0x23c/0x470 mm/memcontrol-v1.c:1817
mem_cgroup_write+0x223/0x290 mm/memcontrol-v1.c:-1
cgroup_file_write+0x331/0x8f0 kernel/cgroup/cgroup.c:4412
kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345
new_sync_write fs/read_write.c:595 [inline]
vfs_write+0x612/0xba0 fs/read_write.c:687
ksys_write+0x150/0x270 fs/read_write.c:739
do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
do_syscall_64+0x166/0x510 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&lruvec->lru_lock);
lock(lock#3);
lock(&lruvec->lru_lock);
lock(lock#3);
*** DEADLOCK ***
locks held by syz.0.17/5796: 5, last CPU#0:
#0: ffff88810338ecf0 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x246/0x320 fs/file.c:1259
#1: ffff888110422460 (sb_writers#10){.+.+}-{0:0}, at: file_start_write include/linux/fs.h:2754 [inline]
#1: ffff888110422460 (sb_writers#10){.+.+}-{0:0}, at: vfs_write+0x22b/0xba0 fs/read_write.c:683
#2: ffff88811ad85880 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x1d8/0x540 fs/kernfs/file.c:336
#3: ffff8881bd86d3c8 (kn->active#53){.+.+}-{0:0}, at: kernfs_get_active_of fs/kernfs/file.c:73 [inline]
#3: ffff8881bd86d3c8 (kn->active#53){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x22b/0x540 fs/kernfs/file.c:337
#4: ffff888102ab6cb0 (&lruvec->lru_lock){....}-{3:3}, at: spin_lock_irq include/linux/spinlock.h:372 [inline]
#4: ffff888102ab6cb0 (&lruvec->lru_lock){....}-{3:3}, at: evict_folios+0x3cf5/0x4970 mm/vmscan.c:4926
stack backtrace:
CPU: 0 UID: 0 PID: 5796 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
print_circular_bug+0x2e2/0x300 kernel/locking/lockdep.c:2059
check_noncircular+0x12f/0x150 kernel/locking/lockdep.c:2191
check_prev_add kernel/locking/lockdep.c:3181 [inline]
check_prevs_add kernel/locking/lockdep.c:3300 [inline]
validate_chain kernel/locking/lockdep.c:3924 [inline]
__lock_acquire+0x15ff/0x2e50 kernel/locking/lockdep.c:5254
lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5908
local_lock_acquire include/linux/local_lock_internal.h:46 [inline]
__folio_batch_add_and_move+0x132/0xc50 mm/folio.c:220
folio_putback_lru+0x18/0xe0 mm/vmscan.c:822
evict_folios+0x3cfd/0x4970 mm/vmscan.c:4927
try_to_shrink_lruvec+0xe3b/0x1340 mm/vmscan.c:5081
lru_gen_shrink_lruvec mm/vmscan.c:5226 [inline]
shrink_lruvec+0x54f/0x2c40 mm/vmscan.c:5986
shrink_node_memcgs mm/vmscan.c:6225 [inline]
shrink_node+0xa9b/0x3e30 mm/vmscan.c:6269
shrink_zones mm/vmscan.c:6508 [inline]
do_try_to_free_pages+0x6a3/0x1990 mm/vmscan.c:6570
try_to_free_mem_cgroup_pages+0x30d/0x830 mm/vmscan.c:6892
mem_cgroup_resize_max+0x23c/0x470 mm/memcontrol-v1.c:1817
mem_cgroup_write+0x223/0x290 mm/memcontrol-v1.c:-1
cgroup_file_write+0x331/0x8f0 kernel/cgroup/cgroup.c:4412
kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345
new_sync_write fs/read_write.c:595 [inline]
vfs_write+0x612/0xba0 fs/read_write.c:687
ksys_write+0x150/0x270 fs/read_write.c:739
do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
do_syscall_64+0x166/0x510 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f64a439e0d9
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f64a5333028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f64a4625fa0 RCX: 00007f64a439e0d9
RDX: 0000000000000020 RSI: 00002000000002c0 RDI: 0000000000000003
RBP: 00007f64a4435024 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f64a4626038 R14: 00007f64a4625fa0 R15: 00007fff0f9eaaa8
</TASK>
***
If these findings have caused you to resend the series or submit a
separate fix, please add the following tag to your commit message:
Tested-by: syzbot@syzkaller.appspotmail.com
---
This report is generated by a bot. It may contain errors.
syzbot ci engineers can be reached at syzkaller@googlegroups.com.
To test a patch for this bug, please reply with `#syz test`
(should be on a separate line).
The patch should be attached to the email.
Note: arguments like custom git repos and branches are not supported.
The email will later be sent to:
[akpm@linux-foundation.org axelrasmussen@google.com baohua@kernel.org david@kernel.org hannes@cmpxchg.org kasong@tencent.com kernel@oss.qualcomm.com ketan.kishore@oss.qualcomm.com linux-kernel@vger.kernel.org linux-mm@kvack.org ljs@kernel.org mhocko@kernel.org prakash.gupta@oss.qualcomm.com qi.zheng@linux.dev shakeel.butt@linux.dev weixugc@google.com yuanchu@google.com yuzhao@google.com]
If the report looks fine to you, reply with:
#syz upstream
If the report is a false positive, reply with
#syz invalid
next reply other threads:[~2026-08-07 16:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 16:41 syzbot ci [this message]
2026-08-07 16:59 ` [moderation/CI] Re: mm/mglru: fix lockless folio_putback_lru() race in evict_folios() Aleksandr Nogikh
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=6a760ac6.01d0871a.3a0d52.004e.GAE@google.com \
--to=syzbot+ci574de685c44b0d14@syzkaller.appspotmail.com \
--cc=syzbot@lists.linux.dev \
--cc=syzkaller-upstream-moderation@googlegroups.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.