Subject: [syzbot] linux-next boot error: WARNING: suspicious RCU usage in cpuacct_charge

From: syzbot <[email-masked]>
Date: Fri, 04 Mar 2022 02:41:21 -0800

Hello,

syzbot found the following issue on:

HEAD commit:    6d284ba80c0c Add linux-next specific files for 20220304
git tree:       linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=15c283d1700000
kernel config:  https://syzkaller.appspot.com/x/.config?x=26714bde6b3ad08b
dashboard link: https://syzkaller.appspot.com/bug?extid=16e3f2c77e7c5a0113f9
compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: [email-masked]

=============================
WARNING: suspicious RCU usage
5.17.0-rc6-next-20220304-syzkaller #0 Not tainted
-----------------------------
include/linux/cgroup.h:494 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 1
2 locks held by kthreadd/2:
 #0: ffff8881401726e0 (&p->pi_lock){....}-{2:2}, at: task_rq_lock+0x63/0x360 kernel/sched/core.c:578
 #1: ffff8880b9c39f98 (&rq->__lock){-...}-{2:2}, at: raw_spin_rq_lock_nested+0x2b/0x120 kernel/sched/core.c:478

stack backtrace:
CPU: 0 PID: 2 Comm: kthreadd Not tainted 5.17.0-rc6-next-20220304-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 task_css include/linux/cgroup.h:494 [inline]
 task_ca kernel/sched/cpuacct.c:40 [inline]
 cpuacct_charge+0x2af/0x3c0 kernel/sched/cpuacct.c:342
 cgroup_account_cputime include/linux/cgroup.h:792 [inline]
 update_curr+0x37b/0x830 kernel/sched/fair.c:907
 dequeue_entity+0x23/0xfd0 kernel/sched/fair.c:4422
 dequeue_task_fair+0x238/0xea0 kernel/sched/fair.c:5771
 dequeue_task kernel/sched/core.c:2019 [inline]
 __do_set_cpus_allowed+0x186/0x960 kernel/sched/core.c:2508
 __set_cpus_allowed_ptr_locked+0x2ba/0x4e0 kernel/sched/core.c:2841
 __set_cpus_allowed_ptr kernel/sched/core.c:2874 [inline]
 set_cpus_allowed_ptr+0x78/0xa0 kernel/sched/core.c:2879
 kthreadd+0x44/0x750 kernel/kthread.c:724
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>

=============================
WARNING: suspicious RCU usage
5.17.0-rc6-next-20220304-syzkaller #0 Not tainted
-----------------------------
include/linux/cgroup.h:481 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 1
2 locks held by kthreadd/2:
 #0: ffff8881401726e0 (&p->pi_lock){....}-{2:2}, at: task_rq_lock+0x63/0x360 kernel/sched/core.c:578
 #1: ffff8880b9c39f98 (&rq->__lock){-...}-{2:2}, at: raw_spin_rq_lock_nested+0x2b/0x120 kernel/sched/core.c:478

stack backtrace:
CPU: 0 PID: 2 Comm: kthreadd Not tainted 5.17.0-rc6-next-20220304-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 task_css_set include/linux/cgroup.h:481 [inline]
 task_dfl_cgroup include/linux/cgroup.h:550 [inline]
 cgroup_account_cputime include/linux/cgroup.h:794 [inline]
 update_curr+0x671/0x830 kernel/sched/fair.c:907
 dequeue_entity+0x23/0xfd0 kernel/sched/fair.c:4422
 dequeue_task_fair+0x238/0xea0 kernel/sched/fair.c:5771
 dequeue_task kernel/sched/core.c:2019 [inline]
 __do_set_cpus_allowed+0x186/0x960 kernel/sched/core.c:2508
 __set_cpus_allowed_ptr_locked+0x2ba/0x4e0 kernel/sched/core.c:2841
 __set_cpus_allowed_ptr kernel/sched/core.c:2874 [inline]
 set_cpus_allowed_ptr+0x78/0xa0 kernel/sched/core.c:2879
 kthreadd+0x44/0x750 kernel/kthread.c:724
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>

---
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 [email-masked].

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