syzbot


BUG: unable to handle kernel paging request in percpu_ref_get_many (2)

Status: moderation: reported on 2025/05/07 20:59
Subsystems: cgroups mm
[Documentation on labels]
Reported-by: syzbot+310ff5174cf6fe655f07@syzkaller.appspotmail.com
First crash: 4d18h, last: 1d19h
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream BUG: unable to handle kernel paging request in percpu_ref_get_many cgroups mm 3 853d 925d 0/28 auto-obsoleted due to no activity on 2023/04/06 05:44
upstream general protection fault in percpu_ref_get_many cgroups mm 1 66d 66d 0/28 closed as invalid on 2025/03/30 10:14

Sample crash report:
Unable to handle kernel paging request at virtual address fffe80021626fc00
KASAN: maybe wild-memory-access in range [0xfff80010b137e000-0xfff80010b137e007]
Mem abort info:
  ESR = 0x0000000096000004
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x04: level 0 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000001a5de2000
[fffe80021626fc00] pgd=0000000000000000, p4d=10000001ae4ff003, pud=0000000000000000
Internal error: Oops: 0000000096000004 [#1]  SMP
Modules linked in:
CPU: 0 UID: 0 PID: 8365 Comm: dhcpcd-run-hook Not tainted 6.15.0-rc4-syzkaller-ge0f4c8dd9d2d #0 PREEMPT 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
pstate: 404000c5 (nZcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __percpu_add_case_64 arch/arm64/include/asm/percpu.h:127 [inline]
pc : percpu_ref_get_many+0xc4/0x1f4 include/linux/percpu-refcount.h:205
lr : rcu_read_lock include/linux/rcupdate.h:842 [inline]
lr : percpu_ref_get_many+0x3c/0x1f4 include/linux/percpu-refcount.h:202
sp : ffff80009ccd75e0
x29: ffff80009ccd75f0 x28: 0000000000000000 x27: 0000000000000000
x26: dfff800000000000 x25: ffff80009ccd7720 x24: ffff0001b3879780
x23: ffff0001b3879738 x22: 1fffe0001aa527a1 x21: dfff800000000000
x20: ffff0000d5293d08 x19: 0000000000000001 x18: 0000000000000000
x17: ffff0001fea8a870 x16: ffff80008ada5d6c x15: 0000000000000001
x14: 1fffe0001a50ccc3 x13: 0000000000000000 x12: 0000000000000000
x11: 00000000590f4815 x10: 0000000000000003 x9 : ffff80012461c000
x8 : fffe80021626fc00 x7 : ffff800080c94dd0 x6 : 0000000000000000
x5 : 0000000000000001 x4 : 0000000000000000 x3 : 0000000000000002
x2 : 0000000000000008 x1 : ffff80008b3d7940 x0 : 0000000000000001
Call trace:
 percpu_ref_get_many+0xc4/0x1f4 include/linux/percpu-refcount.h:205 (P)
 percpu_ref_get include/linux/percpu-refcount.h:222 [inline]
 obj_cgroup_get include/linux/memcontrol.h:760 [inline]
 replace_stock_objcg mm/memcontrol.c:2774 [inline]
 refill_obj_stock+0x150/0x470 mm/memcontrol.c:2952
 obj_cgroup_uncharge mm/memcontrol.c:3015 [inline]
 __memcg_slab_free_hook+0x110/0x228 mm/memcontrol.c:3102
 memcg_slab_free_hook mm/slub.c:2223 [inline]
 slab_free mm/slub.c:4653 [inline]
 kmem_cache_free+0x270/0x550 mm/slub.c:4758
 anon_vma_chain_free mm/rmap.c:147 [inline]
 unlink_anon_vmas+0x224/0x520 mm/rmap.c:421
 free_pgtables+0x3dc/0x63c mm/memory.c:391
 exit_mmap+0x394/0xbec mm/mmap.c:1295
 __mmput+0xec/0x3dc kernel/fork.c:1379
 mmput+0x70/0xac kernel/fork.c:1401
 exit_mm+0x13c/0x200 kernel/exit.c:589
 do_exit+0x470/0x1998 kernel/exit.c:940
 do_group_exit+0x194/0x22c kernel/exit.c:1102
 __do_sys_exit_group kernel/exit.c:1113 [inline]
 __se_sys_exit_group kernel/exit.c:1111 [inline]
 pid_child_should_wake+0x0/0x1dc kernel/exit.c:1111
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49
 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132
 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
 el0_svc+0x58/0x150 arch/arm64/kernel/entry-common.c:744
 el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:762
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600
Code: 11000529 b9000289 d538d089 8b080128 (f833011f) 
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
   0:	11000529 	add	w9, w9, #0x1
   4:	b9000289 	str	w9, [x20]
   8:	d538d089 	mrs	x9, tpidr_el1
   c:	8b080128 	add	x8, x9, x8
* 10:	f833011f 	stadd	x19, [x8] <-- trapping instruction

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/03 20:51 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: unable to handle kernel paging request in percpu_ref_get_many
2025/05/06 19:59 net e8716b5b0dff ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce general protection fault in percpu_ref_get_many
2025/05/06 18:10 net e8716b5b0dff ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce general protection fault in percpu_ref_get_many
* Struck through repros no longer work on HEAD.