The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair
@ 2026-06-09 23:04 syzbot
  2026-06-11  7:56 ` Forwarded: [PATCH] sched/fair: Skip newidle balance for remote rqs syzbot
  2026-06-12  1:50 ` syzbot
  0 siblings, 2 replies; 5+ messages in thread
From: syzbot @ 2026-06-09 23:04 UTC (permalink / raw)
  To: anna-maria, cgroups, frederic, linux-kernel, linux-mm,
	syzkaller-bugs, tglx

Hello,

syzbot found the following issue on:

HEAD commit:    a87737435cfa Add linux-next specific files for 20260608
git tree:       linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=11715db6580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=da47745f686dc823
dashboard link: https://syzkaller.appspot.com/bug?extid=2cbf10efc23b22ff9c31
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=12df60ae580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11edb0ae580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/85d19fe6bb4e/disk-a8773743.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/30c683ce26e1/vmlinux-a8773743.xz
kernel image: https://storage.googleapis.com/syzbot-assets/4db5027513d2/bzImage-a8773743.xz

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

------------[ cut here ]------------
task_rq(p) != rq
WARNING: kernel/sched/fair.c:7656 at hrtick_start_fair+0x196/0x1f0 kernel/sched/fair.c:7656, CPU#0: rcu_preempt/18
Modules linked in:
CPU: 0 UID: 0 PID: 18 Comm: rcu_preempt Not tainted syzkaller #0 PREEMPT_{RT,(full)} 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/09/2026
RIP: 0010:hrtick_start_fair+0x196/0x1f0 kernel/sched/fair.c:7656
Code: 42 80 3c 20 00 74 08 4c 89 ff e8 85 e3 97 00 4d 39 37 0f 85 0c ff ff ff 48 89 df 5b 41 5c 41 5d 41 5e 41 5f e9 4b 65 fa ff 90 <0f> 0b 90 e9 d1 fe ff ff 44 89 f9 80 e1 07 80 c1 03 38 c1 0f 8c 82
RSP: 0018:ffffc900001777e0 EFLAGS: 00010087
RAX: ffff8880b873ba40 RBX: ffff8880b863ba40 RCX: ffffffff8197c7de
RDX: 0000000000000000 RSI: ffff88802c528000 RDI: ffff8880b863ba40
RBP: dffffc0000000000 R08: ffffffff8fcf0b0f R09: 1ffffffff1f9e161
R10: dffffc0000000000 R11: fffffbfff1f9e162 R12: dffffc0000000000
R13: 1ffff110170c78d6 R14: ffff88802c528000 R15: ffffffff8dc217d8
FS:  0000000000000000(0000) GS:ffff888125a76000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007eff95e6a540 CR3: 0000000028e30000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 set_next_task_fair+0xa68/0xce0 kernel/sched/fair.c:15058
 put_prev_set_next_task kernel/sched/sched.h:2770 [inline]
 pick_next_task kernel/sched/core.c:6443 [inline]
 __schedule+0x3e03/0x5550 kernel/sched/core.c:7144
 __schedule_loop kernel/sched/core.c:7308 [inline]
 schedule+0x164/0x360 kernel/sched/core.c:7323
 schedule_timeout+0x158/0x2c0 kernel/time/sleep_timeout.c:99
 rcu_gp_fqs_loop+0x312/0x11b0 kernel/rcu/tree.c:2123
 rcu_gp_kthread+0x9e/0x2b0 kernel/rcu/tree.c:2325
 kthread+0x388/0x470 kernel/kthread.c:436
 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </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 syzkaller@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 syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Forwarded: [PATCH] sched/fair: Skip newidle balance for remote rqs
  2026-06-09 23:04 [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair syzbot
@ 2026-06-11  7:56 ` syzbot
  2026-06-12  1:50 ` syzbot
  1 sibling, 0 replies; 5+ messages in thread
From: syzbot @ 2026-06-11  7:56 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [PATCH] sched/fair: Skip newidle balance for remote rqs
Author: jie.wang@intel.com

#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 49e02880ec0a8c378e811bc9d85da188d7c6204c

Commit b3a2dfa8b42e ("sched/fair: Add newidle balance to
pick_task_fair()") added sched_balance_newidle() to pick_task_fair().
With CONFIG_SCHED_CORE, the core-wide selection loop in pick_next_task()
calls pick_task() for each sibling rq. When a sibling has no CFS tasks,
pick_task_fair() enters newidle balancing which drops the shared
core-wide rq lock.

During this window, tasks already selected for earlier siblings can be
migrated away, making core_pick stale. This causes task_rq(p) != rq in
hrtick_start_fair().

Skip newidle balance when called for a remote rq. The sibling will do
its own newidle balance when it schedules itself.

Fixes: b3a2dfa8b42e ("sched/fair: Add newidle balance to pick_task_fair()")
Reported-by: syzbot+2cbf10efc23b22ff9c31@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2cbf10efc23b22ff9c31
Signed-off-by: Jie Wang <jie.wang@intel.com>
---
 kernel/sched/fair.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 1b23e73f48b0..5beb4e1b480b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -9942,6 +9942,13 @@ struct task_struct *pick_task_fair(struct rq *rq, struct rq_flags *rf)
 	return p;
 
 idle:
+	/*
+	 * Skip newidle balance for remote rqs -- doing so would drop the
+	 * core-wide rq lock, invalidating already-selected core_picks.
+	 */
+	if (rq != this_rq())
+		return NULL;
+
 	new_tasks = sched_balance_newidle(rq, rf);
 	if (new_tasks < 0)
 		return RETRY_TASK;
-- 
2.43.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair
       [not found] <20260611154342.528964-1-jie.wang@intel.com>
@ 2026-06-11  9:18 ` syzbot
  0 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-06-11  9:18 UTC (permalink / raw)
  To: jie.wang, linux-kernel, syzkaller-bugs

Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
lost connection to test machine



Tested on:

commit:         49e02880 Add linux-next specific files for 20260609
git tree:       https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
console output: https://syzkaller.appspot.com/x/log.txt?x=12626156580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=c5df12af3478f8be
dashboard link: https://syzkaller.appspot.com/bug?extid=2cbf10efc23b22ff9c31
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
patch:          https://syzkaller.appspot.com/x/patch.diff?x=14f7e8ae580000


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Forwarded: [PATCH] sched/fair: Skip newidle balance for remote rqs
  2026-06-09 23:04 [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair syzbot
  2026-06-11  7:56 ` Forwarded: [PATCH] sched/fair: Skip newidle balance for remote rqs syzbot
@ 2026-06-12  1:50 ` syzbot
  1 sibling, 0 replies; 5+ messages in thread
From: syzbot @ 2026-06-12  1:50 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [PATCH] sched/fair: Skip newidle balance for remote rqs
Author: jie.wang@intel.com

#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 49e02880ec0a8c378e811bc9d85da188d7c6204c

Commit b3a2dfa8b42e ("sched/fair: Add newidle balance to
pick_task_fair()") added sched_balance_newidle() to pick_task_fair().
With CONFIG_SCHED_CORE, the core-wide selection loop in pick_next_task()
calls pick_task() for each sibling rq. When a sibling has no CFS tasks,
pick_task_fair() enters newidle balancing which drops the shared
core-wide rq lock.

During this window, tasks already selected for earlier siblings can be
migrated away, making core_pick stale. This causes task_rq(p) != rq in
hrtick_start_fair().

Skip newidle balance when called for a remote rq. The sibling will do
its own newidle balance when it schedules itself.

Fixes: b3a2dfa8b42e ("sched/fair: Add newidle balance to pick_task_fair()")
Reported-by: syzbot+2cbf10efc23b22ff9c31@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2cbf10efc23b22ff9c31
Signed-off-by: Jie Wang <jie.wang@intel.com>
---
 kernel/sched/fair.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 1b23e73f48b0..5beb4e1b480b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -9942,6 +9942,13 @@ struct task_struct *pick_task_fair(struct rq *rq, struct rq_flags *rf)
 	return p;
 
 idle:
+	/*
+	 * Skip newidle balance for remote rqs -- doing so would drop the
+	 * core-wide rq lock, invalidating already-selected core_picks.
+	 */
+	if (rq != this_rq())
+		return NULL;
+
 	new_tasks = sched_balance_newidle(rq, rf);
 	if (new_tasks < 0)
 		return RETRY_TASK;
-- 
2.43.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair
       [not found] <20260612093714.569671-1-jie.wang@intel.com>
@ 2026-06-12  2:41 ` syzbot
  0 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-06-12  2:41 UTC (permalink / raw)
  To: jie.wang, linux-kernel, syzkaller-bugs

Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
lost connection to test machine



Tested on:

commit:         49e02880 Add linux-next specific files for 20260609
git tree:       https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
console output: https://syzkaller.appspot.com/x/log.txt?x=11f9b8ae580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=c5df12af3478f8be
dashboard link: https://syzkaller.appspot.com/bug?extid=2cbf10efc23b22ff9c31
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
patch:          https://syzkaller.appspot.com/x/patch.diff?x=13b303b6580000


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-06-12  2:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-09 23:04 [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair syzbot
2026-06-11  7:56 ` Forwarded: [PATCH] sched/fair: Skip newidle balance for remote rqs syzbot
2026-06-12  1:50 ` syzbot
     [not found] <20260611154342.528964-1-jie.wang@intel.com>
2026-06-11  9:18 ` [syzbot] [cgroups?] [mm?] WARNING in hrtick_start_fair syzbot
     [not found] <20260612093714.569671-1-jie.wang@intel.com>
2026-06-12  2:41 ` syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox