Re: [PATCH 1/8] sched: Fix hrtick() vs scheduling context
From: John Stultz
Date: Mon Sep 22 2025 - 20:24:15 EST
On Thu, Sep 18, 2025 at 1:06 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> The sched_class::task_tick() method is called on the donor
> sched_class, and sched_tick() hands it rq->donor as argument, which is
> consistent.
>
> However, while hrtick() uses the donor sched_class, it then passes
> rq->curr, which is inconsistent. Fix it.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> kernel/sched/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -875,7 +875,7 @@ static enum hrtimer_restart hrtick(struc
>
> rq_lock(rq, &rf);
> update_rq_clock(rq);
> - rq->donor->sched_class->task_tick(rq, rq->curr, 1);
> + rq->donor->sched_class->task_tick(rq, rq->donor, 1);
> rq_unlock(rq, &rf);
Ah. Thanks for catching this! I've run through with some stress
testing on this and haven't seen any problems so far.
Acked-by: John Stultz <jstultz@xxxxxxxxxx>
thanks
-john