syzbot


general protection fault in percpu_ref_get_many

Status: upstream: reported on 2025/08/29 08:46
Reported-by: syzbot+a0a2c5c3578016881105@syzkaller.appspotmail.com
First crash: 1d01h, last: 1d01h
Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 general protection fault in percpu_ref_get_many 2 1 31d 31d 0/3 upstream: reported on 2025/07/29 15:11
upstream general protection fault in percpu_ref_get_many mm cgroups 2 1 179d 179d 0/29 closed as invalid on 2025/03/30 10:14
upstream BUG: unable to handle kernel paging request in percpu_ref_get_many (2) mm cgroups 23 69 1d14h 97d 0/29 upstream: reported on 2025/05/25 00:43
upstream BUG: unable to handle kernel paging request in percpu_ref_get_many mm cgroups 8 3 967d 1038d 0/29 auto-obsoleted due to no activity on 2023/04/06 05:44

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc001fffe000: 0000 [#1] PREEMPT SMP KASAN
KASAN: probably user-memory-access in range [0x00000000ffff0000-0x00000000ffff0007]
CPU: 0 PID: 18768 Comm: udevadm Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:__ref_is_percpu include/linux/percpu-refcount.h:174 [inline]
RIP: 0010:percpu_ref_get_many+0x8d/0x140 include/linux/percpu-refcount.h:204
Code: 01 48 c7 c7 e0 b7 b6 8a be 14 03 00 00 48 c7 c2 20 b8 b6 8a e8 a4 18 83 ff 49 bc 00 00 00 00 00 fc ff df 4c 89 f8 48 c1 e8 03 <42> 80 3c 20 00 74 08 4c 89 ff e8 04 3b f8 ff 49 8b 07 a8 03 75 62
RSP: 0018:ffffc9000477f7d8 EFLAGS: 00010006
RAX: 000000001fffe000 RBX: ffffffff81e49a59 RCX: 7d4b003fb5639100
RDX: 0000000000000000 RSI: ffffffff8afc7020 RDI: ffffffff8afc6fe0
RBP: ffffc9000477f8f8 R08: dffffc0000000000 R09: 1ffffffff21b4aa0
R10: dffffc0000000000 R11: fffffbfff21b4aa1 R12: dffffc0000000000
R13: 1ffff110171c6ff6 R14: 0000000000000001 R15: 00000000ffff0000
FS:  0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fafbac3be9c CR3: 00000000664dd000 CR4: 00000000003506f0
DR0: fffffffffffffff1 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 percpu_ref_get include/linux/percpu-refcount.h:222 [inline]
 obj_cgroup_get include/linux/memcontrol.h:798 [inline]
 refill_obj_stock+0x1f9/0x680 mm/memcontrol.c:3342
 memcg_slab_free_hook+0x125/0x1f0 mm/slab.h:576
 slab_free mm/slub.c:3811 [inline]
 kmem_cache_free+0xe1/0x280 mm/slub.c:3838
 anon_vma_chain_free mm/rmap.c:147 [inline]
 unlink_anon_vmas+0x612/0x660 mm/rmap.c:448
 free_pgtables+0x258/0x770 mm/memory.c:383
 exit_mmap+0x3e8/0xb50 mm/mmap.c:3313
 __mmput+0x118/0x3c0 kernel/fork.c:1355
 exit_mm+0x1da/0x2c0 kernel/exit.c:569
 do_exit+0x88e/0x23c0 kernel/exit.c:870
 do_group_exit+0x21b/0x2d0 kernel/exit.c:1024
 __do_sys_exit_group kernel/exit.c:1035 [inline]
 __se_sys_exit_group kernel/exit.c:1033 [inline]
 __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1033
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7fafba4f16c5
Code: Unable to access opcode bytes at 0x7fafba4f169b.
RSP: 002b:00007ffc70d57048 EFLAGS: 00000206 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 00007fafba5f2fe8 RCX: 00007fafba4f16c5
RDX: 00000000000000e7 RSI: fffffffffffffe60 RDI: 0000000000000000
RBP: 0000000000000001 R08: 00007ffc70d56fe0 R09: 0000000000000000
R10: 00007ffc70d56e90 R11: 0000000000000206 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fafba5f1680 R15: 00007fafba5f3000
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__ref_is_percpu include/linux/percpu-refcount.h:174 [inline]
RIP: 0010:percpu_ref_get_many+0x8d/0x140 include/linux/percpu-refcount.h:204
Code: 01 48 c7 c7 e0 b7 b6 8a be 14 03 00 00 48 c7 c2 20 b8 b6 8a e8 a4 18 83 ff 49 bc 00 00 00 00 00 fc ff df 4c 89 f8 48 c1 e8 03 <42> 80 3c 20 00 74 08 4c 89 ff e8 04 3b f8 ff 49 8b 07 a8 03 75 62
RSP: 0018:ffffc9000477f7d8 EFLAGS: 00010006
RAX: 000000001fffe000 RBX: ffffffff81e49a59 RCX: 7d4b003fb5639100
RDX: 0000000000000000 RSI: ffffffff8afc7020 RDI: ffffffff8afc6fe0
RBP: ffffc9000477f8f8 R08: dffffc0000000000 R09: 1ffffffff21b4aa0
R10: dffffc0000000000 R11: fffffbfff21b4aa1 R12: dffffc0000000000
R13: 1ffff110171c6ff6 R14: 0000000000000001 R15: 00000000ffff0000
FS:  0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fafbac3be9c CR3: 00000000664dd000 CR4: 00000000003506f0
DR0: fffffffffffffff1 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess), 1 bytes skipped:
   0:	48 c7 c7 e0 b7 b6 8a 	mov    $0xffffffff8ab6b7e0,%rdi
   7:	be 14 03 00 00       	mov    $0x314,%esi
   c:	48 c7 c2 20 b8 b6 8a 	mov    $0xffffffff8ab6b820,%rdx
  13:	e8 a4 18 83 ff       	call   0xff8318bc
  18:	49 bc 00 00 00 00 00 	movabs $0xdffffc0000000000,%r12
  1f:	fc ff df
  22:	4c 89 f8             	mov    %r15,%rax
  25:	48 c1 e8 03          	shr    $0x3,%rax
* 29:	42 80 3c 20 00       	cmpb   $0x0,(%rax,%r12,1) <-- trapping instruction
  2e:	74 08                	je     0x38
  30:	4c 89 ff             	mov    %r15,%rdi
  33:	e8 04 3b f8 ff       	call   0xfff83b3c
  38:	49 8b 07             	mov    (%r15),%rax
  3b:	a8 03                	test   $0x3,%al
  3d:	75 62                	jne    0xa1

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/29 08:45 linux-6.6.y cc1a1c5b404a d401b9d7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in percpu_ref_get_many
* Struck through repros no longer work on HEAD.