From: Ingo Molnar <mingo@kernel.org>
To: Giovanni Gherdovich <ggherdovich@suse.cz>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Mike Galbraith <mgalbraith@suse.de>,
Stanislaw Gruszka <sgruszka@redhat.com>,
linux-kernel@vger.kernel.org,
Mel Gorman <mgorman@techsingularity.net>
Subject: Re: [PATCH 1/1] sched/cputime: Mitigate performance regression in times()/clock_gettime()
Date: Wed, 10 Aug 2016 13:26:41 +0200 [thread overview]
Message-ID: <20160810112641.GA30126@gmail.com> (raw)
In-Reply-To: <1470385316-15027-2-git-send-email-ggherdovich@suse.cz>
* Giovanni Gherdovich <ggherdovich@suse.cz> wrote:
> Commit 6e998916dfe3 ("sched/cputime: Fix clock_nanosleep()/clock_gettime()
> inconsistency") fixed a problem whereby clock_nanosleep() followed by
> clock_gettime() could allow a task to wake early. It addressed the problem
> by calling the scheduling classes update_curr when the cputimer starts.
>
> Said change induced a considerable performance regression on the syscalls
> times() and clock_gettimes(CLOCK_PROCESS_CPUTIME_ID). There are some
> debuggers and applications that monitor their own performance that
> accidentally depend on the performance of these specific calls.
>
> This patch mitigates the performace loss by prefetching data in the CPU
> cache, as stalls due to cache misses appear to be where most time is spent
> in our benchmarks.
>
> Here are the performance gain of this patch over v4.7-rc7 on a Sandy Bridge
> box with 32 logical cores and 2 NUMA nodes. The test is repeated with a
> variable number of threads, from 2 to 4*num_cpus; the results are in
> seconds and correspond to the average of 10 runs; the percentage gain is
> computed with (before-after)/before so a positive value is an improvement
> (it's faster). The improvement varies between a few percents for 5-20
> threads and more than 10% for 2 or >20 threads.
>
> pound_clock_gettime:
>
> threads 4.7-rc7 patched 4.7-rc7
> [num] [secs] [secs (percent)]
> 2 3.48 3.06 ( 11.83%)
> 5 3.33 3.25 ( 2.40%)
> 8 3.37 3.26 ( 3.30%)
> 12 3.32 3.37 ( -1.60%)
> 21 4.01 3.90 ( 2.74%)
> 30 3.63 3.36 ( 7.41%)
> 48 3.71 3.11 ( 16.27%)
> 79 3.75 3.16 ( 15.74%)
> 110 3.81 3.25 ( 14.80%)
> 128 3.88 3.31 ( 14.76%)
Nice detective work! I'm wondering, where do we stand if compared with a
pre-6e998916dfe3 kernel?
I admit this is a difficult question: 6e998916dfe3 does not revert cleanly and I
suspect v3.17 does not run easily on a recent distro. Could you attempt to revert
the bad effects of 6e998916dfe3 perhaps, just to get numbers - i.e. don't try to
make the result correct, just see what the performance gap is, roughly.
If there's still a significant gap then it might make sense to optimize this some
more.
Thanks,
Ingo
next prev parent reply other threads:[~2016-08-10 18:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-05 8:21 [PATCH 0/1] " Giovanni Gherdovich
2016-08-05 8:21 ` [PATCH 1/1] " Giovanni Gherdovich
2016-08-10 11:26 ` Ingo Molnar [this message]
2016-08-10 13:02 ` Giovanni Gherdovich
2016-08-12 12:10 ` Stanislaw Gruszka
2016-08-15 7:49 ` Giovanni Gherdovich
2016-08-15 8:33 ` Mel Gorman
2016-08-15 9:19 ` Stanislaw Gruszka
2016-08-15 9:58 ` Mel Gorman
2016-08-15 10:29 ` Stanislaw Gruszka
2016-08-15 9:13 ` Wanpeng Li
2016-08-15 9:21 ` Stanislaw Gruszka
2016-08-15 9:28 ` Wanpeng Li
2016-08-10 18:00 ` [tip:sched/core] " tip-bot for Giovanni Gherdovich
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=20160810112641.GA30126@gmail.com \
--to=mingo@kernel.org \
--cc=ggherdovich@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mgalbraith@suse.de \
--cc=mgorman@techsingularity.net \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=sgruszka@redhat.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
Powered by JetHome