syzbot


KCSAN: data-race in munlock_folio / need_mlock_drain (5)

Status: moderation: reported on 2024/06/02 17:40
Subsystems: mm
[Documentation on labels]
Reported-by: syzbot+a8a0b4c9cd4655c8dc58@syzkaller.appspotmail.com
First crash: 15d, last: 4d00h
Similar bugs (4)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in munlock_folio / need_mlock_drain mm 1 413d 413d 0/27 auto-obsoleted due to no activity on 2023/06/05 22:24
upstream KCSAN: data-race in munlock_folio / need_mlock_drain (2) mm 1 259d 259d 0/27 auto-obsoleted due to no activity on 2023/11/07 10:03
upstream KCSAN: data-race in munlock_folio / need_mlock_drain (4) mm 1 53d 53d 0/27 auto-obsoleted due to no activity on 2024/05/31 11:19
upstream KCSAN: data-race in munlock_folio / need_mlock_drain (3) mm 2 155d 184d 0/27 auto-obsoleted due to no activity on 2024/02/18 23:01

Sample crash report:
loop4: detected capacity change from 0 to 512
EXT4-fs: old and new quota format mixing
==================================================================
BUG: KCSAN: data-race in munlock_folio / need_mlock_drain

read-write to 0xffff888237c2b410 of 1 bytes by task 16847 on cpu 0:
 folio_batch_add include/linux/pagevec.h:77 [inline]
 munlock_folio+0x42/0x130 mm/mlock.c:301
 munlock_vma_folio mm/internal.h:880 [inline]
 __folio_remove_rmap mm/rmap.c:1578 [inline]
 folio_remove_rmap_ptes+0x220/0x230 mm/rmap.c:1595
 zap_present_folio_ptes mm/memory.c:1505 [inline]
 zap_present_ptes mm/memory.c:1570 [inline]
 zap_pte_range mm/memory.c:1612 [inline]
 zap_pmd_range mm/memory.c:1730 [inline]
 zap_pud_range mm/memory.c:1759 [inline]
 zap_p4d_range mm/memory.c:1780 [inline]
 unmap_page_range+0x1016/0x23f0 mm/memory.c:1801
 unmap_single_vma+0x142/0x1d0 mm/memory.c:1847
 unmap_vmas+0x18d/0x2b0 mm/memory.c:1891
 exit_mmap+0x18f/0x710 mm/mmap.c:3341
 __mmput+0x28/0x1c0 kernel/fork.c:1346
 mmput+0x4c/0x60 kernel/fork.c:1368
 exit_mm+0xe4/0x190 kernel/exit.c:565
 do_exit+0x556/0x1710 kernel/exit.c:861
 do_group_exit+0x142/0x150 kernel/exit.c:1023
 __do_sys_exit_group kernel/exit.c:1034 [inline]
 __se_sys_exit_group kernel/exit.c:1032 [inline]
 __x64_sys_exit_group+0x1f/0x20 kernel/exit.c:1032
 x64_sys_call+0x27f9/0x2d70 arch/x86/include/generated/asm/syscalls_64.h:232
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff888237c2b410 of 1 bytes by task 16944 on cpu 1:
 folio_batch_count include/linux/pagevec.h:56 [inline]
 need_mlock_drain+0x30/0x50 mm/mlock.c:235
 cpu_needs_drain mm/swap.c:806 [inline]
 __lru_add_drain_all+0x235/0x410 mm/swap.c:894
 lru_add_drain_all+0x10/0x20 mm/swap.c:910
 invalidate_bdev+0x47/0x70 block/bdev.c:100
 __ext4_fill_super fs/ext4/super.c:5651 [inline]
 ext4_fill_super+0x6f3/0x39e0 fs/ext4/super.c:5676
 get_tree_bdev+0x253/0x2e0 fs/super.c:1615
 ext4_get_tree+0x1c/0x30 fs/ext4/super.c:5708
 vfs_get_tree+0x56/0x1d0 fs/super.c:1780
 do_new_mount+0x227/0x690 fs/namespace.c:3352
 path_mount+0x49b/0xb30 fs/namespace.c:3679
 do_mount fs/namespace.c:3692 [inline]
 __do_sys_mount fs/namespace.c:3898 [inline]
 __se_sys_mount+0x27f/0x2d0 fs/namespace.c:3875
 __x64_sys_mount+0x67/0x80 fs/namespace.c:3875
 x64_sys_call+0x25c9/0x2d70 arch/x86/include/generated/asm/syscalls_64.h:166
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x1d -> 0x05

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 16944 Comm: syz-executor.4 Tainted: G        W          6.10.0-rc3-syzkaller-00099-gd20f6b3d747c #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024
==================================================================

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/06/14 12:53 upstream d20f6b3d747c 8d849073 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in munlock_folio / need_mlock_drain
2024/06/13 15:32 upstream 2ccbdf43d5e7 a9616ff5 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in munlock_folio / need_mlock_drain
2024/06/08 09:21 upstream 96e09b8f8166 82c05ab8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in munlock_folio / need_mlock_drain
2024/06/02 17:40 upstream 83814698cf48 3113787f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in munlock_folio / need_mlock_drain
* Struck through repros no longer work on HEAD.