From: Subhra Mazumdar <subhra.mazumdar@oracle.com>
To: Steven Sistare <steven.sistare@oracle.com>,
Peter Zijlstra <peterz@infradead.org>,
Viresh Kumar <viresh.kumar@linaro.org>
Cc: songliubraving@fb.com, Ingo Molnar <mingo@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
tkjos@google.com, Daniel Lezcano <daniel.lezcano@linaro.org>,
quentin.perret@linaro.org, chris.redpath@arm.com,
Dietmar.Eggemann@arm.com, linux-kernel@vger.kernel.org
Subject: Re: [RFC V2 2/2] sched/fair: Fallback to sched-idle CPU if idle CPU isn't found
Date: Tue, 14 May 2019 10:36:47 -0700 [thread overview]
Message-ID: <da8789d4-3ded-63be-d6f5-1dbe736be104@oracle.com> (raw)
In-Reply-To: <b5f84cce-8000-d9c9-26ae-e34c9ca53ed5@oracle.com>
On 5/14/19 10:27 AM, Subhra Mazumdar wrote:
>
> On 5/14/19 9:03 AM, Steven Sistare wrote:
>> On 5/13/2019 7:35 AM, Peter Zijlstra wrote:
>>> On Mon, May 13, 2019 at 03:04:18PM +0530, Viresh Kumar wrote:
>>>> On 10-05-19, 09:21, Peter Zijlstra wrote:
>>>>> I don't hate his per se; but the whole select_idle_sibling() thing is
>>>>> something that needs looking at.
>>>>>
>>>>> There was the task stealing thing from Steve that looked
>>>>> interesting and
>>>>> that would render your apporach unfeasible.
>>>> I am surely missing something as I don't see how that patchset will
>>>> make this patchset perform badly, than what it already does.
>>> Nah; I just misremembered. I know Oracle has a patch set poking at
>>> select_idle_siblings() _somewhere_ (as do I), and I just found the
>>> wrong
>>> one.
>>>
>>> Basically everybody is complaining select_idle_sibling() is too
>>> expensive for checking the entire LLC domain, except for FB (and thus
>>> likely some other workloads too) that depend on it to kill their tail
>>> latency.
>>>
>>> But I suppose we could still do this, even if we scan only a subset of
>>> the LLC, just keep track of the last !idle CPU running only SCHED_IDLE
>>> tasks and pick that if you do not (in your limited scan) find a better
>>> candidate.
>> Subhra posted a patch that incrementally searches for an idle CPU in
>> the LLC,
>> remembering the last CPU examined, and searching a fixed number of
>> CPUs from there.
>> That technique is compatible with the one that Viresh suggests; the
>> incremental
>> search would stop if a SCHED_IDLE cpu was found.
> This was the last version of patchset I sent:
> https://lkml.org/lkml/2018/6/28/810
>
> Also select_idle_core is a net -ve for certain workloads like OLTP. So I
> had put a SCHED_FEAT to be able to disable it.
Forgot to add, the cpumask_weight computation may not be O(1) with large
number of CPUs, so needs to be precomputed in a per-cpu variable to further
optimize. That part is missing from the above patchset.
>
> Thanks,
> Subhra
>>
>> I also fiddled with select_idle_sibling, maintaining a per-LLC bitmap
>> of idle CPUs,
>> updated with atomic operations. Performance was basically unchanged
>> for the
>> workloads I tested, and I inserted timers around the idle search
>> showing it was
>> a very small fraction of time both before and after my changes. That
>> led me to
>> ignore the push side and optimize the pull side with task stealing.
>>
>> I would be very interested in hearing from folks that have workloads
>> that demonstrate
>> that select_idle_sibling is too expensive.
>>
>> - Steve
next prev parent reply other threads:[~2019-05-14 17:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-25 9:37 [RFC V2 0/2] sched/fair: Fallback to sched-idle CPU for better performance Viresh Kumar
2019-04-25 9:37 ` [RFC V2 1/2] sched: Start tracking SCHED_IDLE tasks count in cfs_rq Viresh Kumar
2019-05-10 6:55 ` Peter Zijlstra
2019-04-25 9:37 ` [RFC V2 2/2] sched/fair: Fallback to sched-idle CPU if idle CPU isn't found Viresh Kumar
2019-05-10 7:21 ` Peter Zijlstra
2019-05-13 9:34 ` Viresh Kumar
2019-05-13 11:35 ` Peter Zijlstra
2019-05-14 16:03 ` Steven Sistare
2019-05-14 17:27 ` Subhra Mazumdar
2019-05-14 17:36 ` Subhra Mazumdar [this message]
2019-06-04 2:58 ` Viresh Kumar
2019-05-09 21:54 ` [RFC V2 0/2] sched/fair: Fallback to sched-idle CPU for better performance Song Liu
2019-05-10 12:29 ` Vincent Guittot
2019-05-15 11:17 ` Viresh Kumar
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=da8789d4-3ded-63be-d6f5-1dbe736be104@oracle.com \
--to=subhra.mazumdar@oracle.com \
--cc=Dietmar.Eggemann@arm.com \
--cc=chris.redpath@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=quentin.perret@linaro.org \
--cc=songliubraving@fb.com \
--cc=steven.sistare@oracle.com \
--cc=tkjos@google.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/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
all inboxes | Powered by JetHome®