Re: [PATCH] sched/fair: Use printk_deferred instead of printk in pick_eevdf()

From: Peter Zijlstra
Date: Tue Oct 10 2023 - 03:59:56 EST


On Tue, Oct 10, 2023 at 11:25:41AM +0800, Chen Yu wrote:
> When no eligible entity is found in pick_eevdf(), it has to pick
> the entity with smallest vruntime. This indicates a potential issue
> and scheduler will print this error.
>
> However this printk could introduce possible circular locking issue
> because when the code path reaches here with the rq lock held, the
> printk could trigger further scheduling which loops back to the
> scheduler.
>
> Use printk_deferred() to defer the console write from current context
> to the irq work in the next tick.

No.. I detest printk_deferred with a passion. This is effectively a WARN
and we don't do silly buggers for them either.