public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: mingo@redhat.com, juri.lelli@redhat.com,
	dietmar.eggemann@arm.com, rostedt@goodmis.org,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, linux-kernel@vger.kernel.org,
	parth@linux.ibm.com, cgroups@vger.kernel.org,
	qyousef@layalina.io, chris.hyser@oracle.com,
	patrick.bellasi@matbug.net, David.Laight@aculab.com,
	pjt@google.com, pavel@ucw.cz, tj@kernel.org, qperret@google.com,
	tim.c.chen@linux.intel.com, joshdon@google.com, timj@gnu.org,
	kprateek.nayak@amd.com, yu.c.chen@intel.com,
	youssefesmat@chromium.org, joel@joelfernandes.org
Subject: Re: [PATCH v10 6/9] sched/fair: Add sched group latency support
Date: Tue, 21 Feb 2023 16:01:22 +0100	[thread overview]
Message-ID: <Y/TcwkmiVXJmQ9nw@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20230113141234.260128-7-vincent.guittot@linaro.org>

On Fri, Jan 13, 2023 at 03:12:31PM +0100, Vincent Guittot wrote:

> +static s64 cpu_latency_nice_read_s64(struct cgroup_subsys_state *css,
> +				    struct cftype *cft)
> +{
> +	int prio, delta, last_delta = INT_MAX;
> +	s64 weight;
> +
> +	weight = css_tg(css)->latency_offset * NICE_LATENCY_WEIGHT_MAX;
> +	weight = div_s64(weight, get_sleep_latency(false));
> +
> +	/* Find the closest nice value to the current weight */

This comment isn't entirely accurate, since we only have the nice_write
interface below, this will be an exact match. The thing with weight is
that we first had the raw weight value interface and then the nice
interface had to map random values back to a 'nice' value.

Arguably we can simply store the raw nice value in write and print it
out again here.

> +	for (prio = 0; prio < ARRAY_SIZE(sched_latency_to_weight); prio++) {
> +		delta = abs(sched_latency_to_weight[prio] - weight);
> +		if (delta >= last_delta)
> +			break;
> +		last_delta = delta;
> +	}
> +
> +	return LATENCY_TO_NICE(prio-1);
> +}
> +
> +static int cpu_latency_nice_write_s64(struct cgroup_subsys_state *css,
> +				     struct cftype *cft, s64 nice)
> +{
> +	s64 latency_offset;
> +	long weight;
> +	int idx;
> +
> +	if (nice < MIN_LATENCY_NICE || nice > MAX_LATENCY_NICE)
> +		return -ERANGE;
> +
> +	idx = NICE_TO_LATENCY(nice);
> +	idx = array_index_nospec(idx, LATENCY_NICE_WIDTH);
> +	weight = sched_latency_to_weight[idx];
> +
> +	latency_offset = weight * get_sleep_latency(false);
> +	latency_offset = div_s64(latency_offset, NICE_LATENCY_WEIGHT_MAX);
> +
> +	return sched_group_set_latency(css_tg(css), latency_offset);
> +}

  reply	other threads:[~2023-02-21 15:02 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-13 14:12 [PATCH v10 0/9] Add latency priority for CFS class Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 1/9] sched/fair: fix unfairness at wakeup Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 2/9] sched: Introduce latency-nice as a per-task attribute Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 3/9] sched/core: Propagate parent task's latency requirements to the child task Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 4/9] sched: Allow sched_{get,set}attr to change latency_nice of the task Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 5/9] sched/fair: Take into account latency priority at wakeup Vincent Guittot
2023-02-21 12:52   ` Peter Zijlstra
2023-02-21 14:12     ` Vincent Guittot
2023-02-21 14:15     ` Peter Zijlstra
2023-02-21 14:25       ` Vincent Guittot
2023-02-21 13:04   ` Peter Zijlstra
2023-02-21 14:21     ` Vincent Guittot
2023-02-21 14:51       ` Peter Zijlstra
2023-02-21 15:08       ` Peter Zijlstra
2023-02-21 15:34         ` Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 6/9] sched/fair: Add sched group latency support Vincent Guittot
2023-02-21 15:01   ` Peter Zijlstra [this message]
2023-02-21 15:32     ` Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 7/9] sched/core: Support latency priority with sched core Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 8/9] sched/fair: Add latency list Vincent Guittot
2023-02-21 15:11   ` Peter Zijlstra
2023-02-21 15:42     ` Vincent Guittot
2023-02-22  9:49   ` Peter Zijlstra
2023-02-22 11:16     ` Vincent Guittot
2023-02-27 13:29       ` Peter Zijlstra
2023-02-27 14:55         ` Vincent Guittot
2023-01-13 14:12 ` [PATCH v10 9/9] sched/fair: remove check_preempt_from_others Vincent Guittot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y/TcwkmiVXJmQ9nw@hirez.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=David.Laight@aculab.com \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=cgroups@vger.kernel.org \
    --cc=chris.hyser@oracle.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=joel@joelfernandes.org \
    --cc=joshdon@google.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=parth@linux.ibm.com \
    --cc=patrick.bellasi@matbug.net \
    --cc=pavel@ucw.cz \
    --cc=pjt@google.com \
    --cc=qperret@google.com \
    --cc=qyousef@layalina.io \
    --cc=rostedt@goodmis.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=timj@gnu.org \
    --cc=tj@kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.com \
    --cc=youssefesmat@chromium.org \
    --cc=yu.c.chen@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox