[PATCH v5 1/1] sched/deadline: Fix dl_server runtime calculation formula
John Stultz
jstultz at google.com
Tue Jul 1 20:28:12 PDT 2025
On Tue, Jul 1, 2025 at 7:14 PM Kuyo Chang <kuyo.chang at mediatek.com> wrote:
>
> In our testing with 6.12 based kernel on a big.LITTLE system, we were
> seeing instances of RT tasks being blocked from running on the LITTLE
> cpus for multiple seconds of time, apparently by the dl_server. This
> far exceeds the default configured 50ms per second runtime.
>
> This is due to the fair dl_server runtime calculation being scaled
> for frequency & capacity of the cpu.
>
> Consider the following case under a Big.LITTLE architecture:
> Assume the runtime is: 50,000,000 ns, and Frequency/capacity
> scale-invariance defined as below:
> Frequency scale-invariance: 100
> Capacity scale-invariance: 50
> First by Frequency scale-invariance,
> the runtime is scaled to 50,000,000 * 100 >> 10 = 4,882,812
> Then by capacity scale-invariance,
> it is further scaled to 4,882,812 * 50 >> 10 = 238,418.
> So it will scaled to 238,418 ns.
>
> This smaller "accounted runtime" value is what ends up being
> subtracted against the fair-server's runtime for the current period.
> Thus after 50ms of real time, we've only accounted ~238us against the
> fair servers runtime. This 209:1 ratio in this example means that on
> the smaller cpu the fair server is allowed to continue running,
> blocking RT tasks, for over 10 seconds before it exhausts its supposed
> 50ms of runtime. And on other hardware configurations it can be even
> worse.
>
> For the fair deadline_server, to prevent realtime tasks from being
> unexpectedly delayed, we really do want to use fixed time, and not
> scaled time for smaller capacity/frequency cpus. So remove the scaling
> from the fair server's accounting to fix this.
>
> Signed-off-by: kuyo chang <kuyo.chang at mediatek.com>
> Acked-by: Juri Lelli <juri.lelli at redhat.com>
> Suggested-by: Peter Zijlstra <peterz at infradead.org>
> Suggested-by: John Stultz <jstultz at google.com>
> Tested-by: John Stultz <jstultz at google.com>
Thanks so much again for the multiple iterations here.
I've re-tested this and it still looks good.
For what its worth:
Acked-by: John Stultz <jstultz at google.com>
Juril/Peter: if/when you take this, could you add a:
Fixes: a110a81c52a9 ("sched/deadline: Deferrable dl server")
It would be great to get this merged and into -stable soon.
thanks
-john
More information about the Linux-mediatek
mailing list