[moderation] [cgroups?] [mm?] KCSAN: data-race in drain_all_stock / drain_stock (8)

0 views
Skip to first unread message

syzbot

unread,
Dec 9, 2023, 7:01:33 PM12/9/23
to syzkaller-upst...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 2cc14f52aeb7 Linux 6.7-rc3
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1638ab0ce80000
kernel config: https://syzkaller.appspot.com/x/.config?x=585869067cd7ce59
dashboard link: https://syzkaller.appspot.com/bug?extid=b116632ad98620c6da29
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
CC: [ak...@linux-foundation.org cgr...@vger.kernel.org han...@cmpxchg.org linux-...@vger.kernel.org linu...@kvack.org mho...@kernel.org muchu...@linux.dev roman.g...@linux.dev shak...@google.com]

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/baa9e55a0f41/disk-2cc14f52.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/5aa402127494/vmlinux-2cc14f52.xz
kernel image: https://storage.googleapis.com/syzbot-assets/6ee6f93940bb/bzImage-2cc14f52.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+b11663...@syzkaller.appspotmail.com

==================================================================
BUG: KCSAN: data-race in drain_all_stock / drain_stock

write to 0xffff888237d2a3c0 of 4 bytes by task 28928 on cpu 1:
drain_stock+0x48/0xf0 mm/memcontrol.c:2320
__refill_stock+0x33/0xb0 mm/memcontrol.c:2360
refill_stock mm/memcontrol.c:2375 [inline]
try_charge_memcg+0x9ee/0xd30 mm/memcontrol.c:2826
try_charge mm/memcontrol.c:2884 [inline]
charge_memcg mm/memcontrol.c:7210 [inline]
__mem_cgroup_charge+0x63/0xf0 mm/memcontrol.c:7225
mem_cgroup_charge include/linux/memcontrol.h:684 [inline]
wp_page_copy mm/memory.c:3143 [inline]
do_wp_page+0x9d4/0x1f40 mm/memory.c:3510
handle_pte_fault mm/memory.c:5054 [inline]
__handle_mm_fault mm/memory.c:5179 [inline]
handle_mm_fault+0xe5d/0x2dd0 mm/memory.c:5344
do_user_addr_fault arch/x86/mm/fault.c:1364 [inline]
handle_page_fault arch/x86/mm/fault.c:1505 [inline]
exc_page_fault+0x3ff/0x6c0 arch/x86/mm/fault.c:1561
asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570

read to 0xffff888237d2a3c0 of 4 bytes by task 28993 on cpu 0:
drain_all_stock+0xd3/0x2d0 mm/memcontrol.c:2405
try_charge_memcg+0x6c5/0xd30 mm/memcontrol.c:2750
obj_cgroup_charge_pages+0xab/0x130 mm/memcontrol.c:3255
__memcg_kmem_charge_page+0x9c/0x170 mm/memcontrol.c:3281
__alloc_pages+0x1bb/0x340 mm/page_alloc.c:4585
alloc_pages_mpol+0xb1/0x1d0 mm/mempolicy.c:2133
alloc_pages+0xe0/0x100 mm/mempolicy.c:2204
pagetable_alloc include/linux/mm.h:2830 [inline]
__pte_alloc_one include/asm-generic/pgalloc.h:68 [inline]
pte_alloc_one+0x32/0xe0 arch/x86/mm/pgtable.c:33
do_fault_around mm/memory.c:4580 [inline]
do_read_fault mm/memory.c:4619 [inline]
do_fault mm/memory.c:4762 [inline]
do_pte_missing mm/memory.c:3730 [inline]
handle_pte_fault mm/memory.c:5038 [inline]
__handle_mm_fault mm/memory.c:5179 [inline]
handle_mm_fault+0x11d6/0x2dd0 mm/memory.c:5344
do_user_addr_fault arch/x86/mm/fault.c:1364 [inline]
handle_page_fault arch/x86/mm/fault.c:1505 [inline]
exc_page_fault+0x3ff/0x6c0 arch/x86/mm/fault.c:1561
asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570

value changed: 0x00000008 -> 0x0000003d

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 28993 Comm: syz-executor.2 Not tainted 6.7.0-rc3-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023
==================================================================
syz-executor.2 invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=1000
CPU: 1 PID: 28993 Comm: syz-executor.2 Not tainted 6.7.0-rc3-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xda/0x130 lib/dump_stack.c:106
dump_stack+0x15/0x20 lib/dump_stack.c:113
dump_header+0x82/0x2d0 mm/oom_kill.c:460
oom_kill_process+0x33a/0x4c0 mm/oom_kill.c:1031
out_of_memory+0x9ca/0xbf0 mm/oom_kill.c:1169
mem_cgroup_out_of_memory+0x139/0x190 mm/memcontrol.c:1791
mem_cgroup_oom mm/memcontrol.c:2021 [inline]
try_charge_memcg+0x75c/0xd30 mm/memcontrol.c:2790
obj_cgroup_charge_pages+0xab/0x130 mm/memcontrol.c:3255
__memcg_kmem_charge_page+0x9c/0x170 mm/memcontrol.c:3281
memcg_kmem_charge_page include/linux/memcontrol.h:1826 [inline]
memcg_charge_kernel_stack+0x146/0x210 kernel/fork.c:260
alloc_thread_stack_node kernel/fork.c:294 [inline]
dup_task_struct+0x125/0x480 kernel/fork.c:1118
copy_process+0x3a6/0x20a0 kernel/fork.c:2332
kernel_clone+0x169/0x560 kernel/fork.c:2907
__do_sys_clone3 kernel/fork.c:3208 [inline]
__se_sys_clone3+0x1b5/0x1f0 kernel/fork.c:3192
__x64_sys_clone3+0x31/0x40 kernel/fork.c:3192
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x44/0x110 arch/x86/entry/common.c:82
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x7f46dcfdc8d9
Code: ff ff eb d2 e8 f8 62 fd ff 0f 1f 84 00 00 00 00 00 b8 ea ff ff ff 48 85 ff 74 2c 48 85 d2 74 27 49 89 c8 b8 b3 01 00 00 0f 05 <48> 85 c0 7c 18 74 01 c3 31 ed 48 83 e4 f0 4c 89 c7 ff d2 48 89 c7
RSP: 002b:00007ffde96fbd98 EFLAGS: 00000202 ORIG_RAX: 00000000000001b3
RAX: ffffffffffffffda RBX: 00007f46dcf84fb0 RCX: 00007f46dcfdc8d9
RDX: 00007f46dcf84fb0 RSI: 0000000000000058 RDI: 00007ffde96fbde0
RBP: 00007f46dc3336c0 R08: 00007f46dc3336c0 R09: 00007ffde96fbec7
R10: 0000000000000008 R11: 0000000000000202 R12: ffffffffffffffb0
R13: 000000000000000b R14: 00007ffde96fbde0 R15: 00007ffde96fbec8
</TASK>
memory: usage 307200kB, limit 307200kB, failcnt 529597
memory+swap: usage 307788kB, limit 9007199254740988kB, failcnt 0
kmem: usage 307184kB, limit 9007199254740988kB, failcnt 0
Memory cgroup stats for /syz2:
cache 0
rss 12288
shmem 0
mapped_file 0
dirty 0
writeback 0
workingset_refault_anon 327551
workingset_refault_file 65
swap 602112
swapcached 12288
pgpgin 673881
pgpgout 673878
pgfault 1270328
pgmajfault 220100
inactive_anon 8192
active_anon 0
inactive_file 0
active_file 0
unevictable 0
hierarchical_memory_limit 314572800
hierarchical_memsw_limit 9223372036854771712
total_cache 0
total_rss 12288
total_shmem 0
total_mapped_file 0
total_dirty 0
total_writeback 0
total_workingset_refault_anon 327551
total_workingset_refault_file 65
total_swap 602112
total_swapcached 12288
total_pgpgin 673881
total_pgpgout 673878
total_pgfault 1270328
total_pgmajfault 220100
total_inactive_anon 8192
total_active_anon 0
total_inactive_file 0
total_active_file 0
total_unevictable 0
oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=syz2,mems_allowed=0,oom_memcg=/syz2,task_memcg=/syz2,task=syz-executor.2,pid=28993,uid=0
Memory cgroup out of memory: Killed process 28993 (syz-executor.2) total-vm:42456kB, anon-rss:376kB, file-rss:8832kB, shmem-rss:0kB, UID:0 pgtables:76kB oom_score_adj:1000


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Jan 1, 2024, 2:14:13 PMJan 1
to syzkaller-upst...@googlegroups.com
Auto-closing this bug as obsolete.
Crashes did not happen for a while, no reproducer and no activity.
Reply all
Reply to author
Forward
0 new messages