Re: [PATCH v4 6/8] sched/fair: Add sched group latency support
From: Dietmar Eggemann
Date: Mon Sep 19 2022 - 07:57:00 EST
s/valentin.schneider@xxxxxxx//
On 16/09/2022 10:03, Vincent Guittot wrote:
> Task can set its latency priority, which is then used to decide to preempt
> the current running entity of the cfs, but sched group entities still have
> the default latency offset.
>
> Add a latency field in task group to set the latency offset of the
> sched_eneities of the group, which will be used against other entities in
s/sched_eneities/sched_entity
> the parent cfs when deciding which entity to schedule first.
So latency for cgroups does not follow any (existing) Resource
Distribution Model/Scheme (Documentation/admin-guide/cgroup-v2.rst)?
Latency values are only used to compare sched entities at the same level.
[...]
> +static int cpu_latency_write_s64(struct cgroup_subsys_state *css,
> + struct cftype *cft, s64 latency)
> +{
There is no [MIN, MAX] checking?
min_weight = sched_latency_to_weight[0] = -1024
max_weight = sched_latency_to_weight[39] = 973
[MIN, MAX] = [sysctl_sched_latency * min_weight >> NICE_LATENCY_SHIFT,
sysctl_sched_latency * max_weight >> NICE_LATENCY_SHIFT]
With the `cpu.latency` knob user would have to know for example that the
value is -24,000,000ns to get the same behaviour as for a task latency
nice = -20 (latency prio = 0) (w/ sysctl_sched_latency = 24ms)?
For `nice` we have `cpu.weight.nice` next to `cpu.weight` in cgroup v2 ?
[...]