From: Christian Loehle <[email protected]>
To: "Rafael J. Wysocki" <[email protected]>
Cc: [email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected]
Subject: Re: [RFC PATCH 2/2] cpufreq/schedutil: Remove iowait boost
Date: Tue, 19 Mar 2024 13:58:23 +0000 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAJZ5v0janPrWRkjcLkFeP9gmTC-nVRF-NQCh6CTET6ENy-_knQ@mail.gmail.com>
On 18/03/2024 17:08, Rafael J. Wysocki wrote:
> On Mon, Mar 18, 2024 at 5:40 PM Christian Loehle
> <[email protected]> wrote:
>>
>> On 18/03/2024 14:07, Rafael J. Wysocki wrote:
>>> On Mon, Mar 4, 2024 at 9:17 PM Christian Loehle
>>> <[email protected]> wrote:
>>>>
>>>> The previous commit provides a new cpu_util_cfs_boost_io interface for
>>>> schedutil which uses the io boosted utilization of the per-task
>>>> tracking strategy. Schedutil iowait boosting is therefore no longer
>>>> necessary so remove it.
>>>
>>> I'm wondering about the cases when schedutil is used without EAS.
>>>
>>> Are they still going to be handled as before after this change?
>>
>> Well they should still get boosted (under the new conditions) and according
>> to my tests that does work.
>
> OK
>
>> Anything in particular you're worried about?
>
> It is not particularly clear to me how exactly the boost is taken into
> account without EAS.
So a quick rundown for now, I'll try to include something along the lines in
future versions then, too.
Every task_struct carries an io_boost_level in the range of [0..8] with it.
The boost is in units of utilization (w.r.t SCHED_CAPACITY_SCALE, independent
of CPU the task might be currently enqueued on).
The boost is taken into account for:
1. sugov frequency selection with
io_boost = cpu_util_io_boost(sg_cpu->cpu);
util = max(util, io_boost);
The io boost of all tasks enqueued on the rq will be max-aggregated with the
util here. (See cfs_rq->io_boost_tasks).
2. Task placement, for EAS in feec();
Otherwise select_idle_sibling() / select_idle_capacity() to ensure the CPU
satisfies the requested io_boost of the task to be enqueued.
Determining the io_boost_level is a bit more involved than with sugov's
implementation and happens in dequeue_io_boost(), hopefully that part
is reasonably understandable from the code.
Hope that helps.
Kind Regards,
Christian
>
>> So in terms of throughput I see similar results with EAS and CAS+sugov.
>> I'm happy including numbers in the cover letter for future versions, too.
>> So far my intuition was that nobody would care enough to include them
>> (as long as it generally still works).
>
> Well, IMV clear understanding of the changes is more important.
next prev parent reply other threads:[~2024-03-19 13:58 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-04 20:16 [RFC PATCH 0/2] Introduce per-task io utilization boost Christian Loehle
2024-03-04 20:16 ` [RFC PATCH 1/2] sched/fair: Introduce per-task io util boost Christian Loehle
2024-03-25 3:30 ` Qais Yousef
2024-03-04 20:16 ` [RFC PATCH 2/2] cpufreq/schedutil: Remove iowait boost Christian Loehle
2024-03-18 14:07 ` Rafael J. Wysocki
2024-03-18 16:40 ` Christian Loehle
2024-03-18 17:08 ` Rafael J. Wysocki
2024-03-19 13:58 ` Christian Loehle [this message]
2024-03-25 2:37 ` Qais Yousef
2024-04-19 13:42 ` Christian Loehle
2024-04-29 11:18 ` Qais Yousef
2024-05-07 15:19 ` Christian Loehle
2024-05-12 15:29 ` Qais Yousef
2024-03-05 0:20 ` [RFC PATCH 0/2] Introduce per-task io utilization boost Bart Van Assche
2024-03-05 9:13 ` Christian Loehle
2024-03-05 18:36 ` Bart Van Assche
2024-03-06 10:49 ` Christian Loehle
2024-03-21 12:39 ` Qais Yousef
2024-03-21 17:57 ` Christian Loehle
2024-03-21 19:52 ` Bart Van Assche
2024-03-25 12:06 ` Christian Loehle
2024-03-25 17:23 ` Bart Van Assche
2024-03-25 2:53 ` Qais Yousef
2024-03-22 18:08 ` Vincent Guittot
2024-03-25 2:20 ` Qais Yousef
2024-03-25 17:18 ` Christian Loehle
2024-03-25 12:24 ` Christian Loehle
2024-03-28 10:09 ` 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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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