Re: [patch 1/2] sched/debug: Change need_resched warnings to pr_err

From: Madadi Vineeth Reddy
Date: Tue Jan 07 2025 - 14:19:04 EST


Hi David Rientjes,

On 07/01/25 02:09, David Rientjes wrote:
> need_resched warnings, if enabled, are treated as WARNINGs. If
> kernel.panic_on_warn is enabled, then this causes a kernel panic.
>
> It's highly unlikely that a panic is desired for these warnings, only a
> stack trace is normally required to debug and resolve.
>
> Thus, switch need_resched warnings to simply be a printk with an
> associated stack trace so they are no longer in scope for panic_on_warn.
>
> Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
> ---
> kernel/sched/debug.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -1295,8 +1295,10 @@ void resched_latency_warn(int cpu, u64 latency)
> {
> static DEFINE_RATELIMIT_STATE(latency_check_ratelimit, 60 * 60 * HZ, 1);
>
> - WARN(__ratelimit(&latency_check_ratelimit),
> - "sched: CPU %d need_resched set for > %llu ns (%d ticks) "
> - "without schedule\n",
> - cpu, latency, cpu_rq(cpu)->ticks_without_resched);
> + if (likely(!__ratelimit(&latency_check_ratelimit)))
> + return;
> +
> + pr_err("sched: CPU %d need_resched set for > %llu ns (%d ticks) without schedule\n",
> + cpu, latency, cpu_rq(cpu)->ticks_without_resched);

LGTM. While this is an issue, it doesn't necessarily indicate a critical failure that would
require the kernel to panic.

Nit: Would using pr_warn instead be too lenient in this case?

Reviewed-by: Madadi Vineeth Reddy <vineethr@xxxxxxxxxxxxx>

Thanks,
Madadi Vineeth Reddy

> + dump_stack();
> }