Re: [PATCH V7 9/9] sched/rt: Remove default bandwidth control
From: Juri Lelli
Date: Fri Nov 29 2024 - 09:45:36 EST
On 29/11/24 11:02, Michal Koutný wrote:
> On Wed, Nov 27, 2024 at 04:35:39PM GMT, Juri Lelli <juri.lelli@xxxxxxxxxx> wrote:
> > > The default DL bandwidth is thus is 95%. The fair server is given 5%.
> > > Is that 5% of those 95%?
> >
> > Yes, it is indeed.
>
> Thanks for navigating me. I have followup questions about
> /proc/sys/kernel/sched_rt_runtime_us / /proc/sys/kernel/sched_rt_period_us
> (a ratio, without CONGIG_RT_GROUP_SCHED)
>
> - 0
> - disables DL, (not RT, so they can monopolize a CPU)
> - 1
> - DL tasks can monopolize CPU, SCHED_NORMAL have 5% thanks to
> fair_server
> - 1-Δ
> - SCHED_NORMAL tasks have
> - (1-Δ)*5% on behalf of DL (above RT)
> - Δ regularly (below RT)
>
> Is this breakdown correct?
So, sched_rt_runtime_us/sched_rt_period_us only applies to admission
control (for DEADLINE tasks, including dl_servers). The actual
parameters controlling the dl_server for SCHED_NORMAL are under sched/
debug as per-cpu values, e.g.:
# grep . /sys/kernel/debug/sched/fair_server/cpu*/*
/sys/kernel/debug/sched/fair_server/cpu0/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu0/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu1/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu1/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu2/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu2/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu3/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu3/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu4/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu4/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu5/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu5/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu6/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu6/runtime:50000000
/sys/kernel/debug/sched/fair_server/cpu7/period:1000000000
/sys/kernel/debug/sched/fair_server/cpu7/runtime:50000000
You can disable admission control by echoing -1 in sched_rt_runtime_us,
but still have the dl_server working for SCHED_NORMAL tasks. By
disabling admission control SCHED_DEADLINE can indeed monopolize CPU
(over subscription).
Best,
Juri