From: Ingo Molnar <mingo@elte.hu>
To: Nick Piggin <npiggin@suse.de>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
hpa@zytor.com, jeremy@xensource.com, chrisw@sous-sol.org,
zach@vmware.com, rusty@rustcorp.com.au,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT
Date: Tue, 20 Jan 2009 16:00:54 +0100 [thread overview]
Message-ID: <20090120150054.GA21931@elte.hu> (raw)
In-Reply-To: <20090120144109.GK19505@wotan.suse.de>
* Nick Piggin <npiggin@suse.de> wrote:
> On Tue, Jan 20, 2009 at 03:17:35PM +0100, Ingo Molnar wrote:
> >
> > * Nick Piggin <npiggin@suse.de> wrote:
> > >
> > > BTW. the lmbench test I run directly (it's called lat_mmap.c, and gets
> > > compiled into a standalone lat_mmap exec by the standard lmbench build).
> >
> > doesnt that include an indeterminate number of gettimeofday() based
> > calibration calls? That would make it harder to measure its total costs in
> > a comparative way.
>
> Hmm... yes probably for really detailed profile comparisons or other
> external measurements it would need modification.
yeah.
Btw., it's a trend to be aware of i think: as our commit flux goes up and
the average commit size goes down, it becomes harder and harder to measure
the per commit performance impact.
There's just 3 ways to handle it: decrease commit flux (which is out of
question), or to increase commits size (wich is out of question as well),
or to improve the quality of our measurements.
We can improve performance measurement quality in a number of ways:
- We can (and should) increase instrumentation precision
/usr/bin/time's 10 msec measurement granularity might have been
fine a decade ago but it is not fine today.
- We can (and should) increase the number of 'dimensions' (metrics) we
can instrument the kernel with.
Right now we basically only measure along the time axis, in 99% of
the cases. But 'elapsed time' is a tricky, compound and thus noisy
unit: it is affected by all delays in a workload. We do profiles
occasionally, but they are a lot more difficult to generate and a lot
harder to compare and are hard to be plugged into regression
analysis.
So if we see a statistically significant shift in one of more metrics of
something like:
-------------------------------------------------
|
| $ ./timec -e -5,-4,-3,0,1,2,3 make -j16 bzImage
|
| [...]
| Kernel: arch/x86/boot/bzImage is ready (#28)
|
| Performance counter stats for 'make':
|
| 628315.871980 task clock ticks (msecs)
|
| 42330 CPU migrations (events)
| 124980 context switches (events)
| 18698292 pagefaults (events)
| 1351875946010 CPU cycles (events)
| 1121901478363 instructions (events)
| 10654788968 cache references (events)
| 633581867 cache misses (events)
|
| Wall-clock time elapsed: 118348.109066 msecs
|
-----------------------------------------------
Becomes a _lot_ harder to ignore (and talk out of existence) than it is to
ignore a few minor digits changing in:
---------------------------------
|
| $ time make -j16 bzImage
|
| real 0m12.146s
| user 1m30.050s
| sys 0m12.757s
|
---------------------------------
( Especially as those minor digits tend to be rather noisy to begin with,
due to us sampling system/user time from the timer interrupt. )
It becomes even harder to ignore statistically significant regressions if
some of the metrics are hardware-generated hard physical facts - not
something wishy-washy and statistical as stime/utime statistics.
</plug> ;-)
Ingo
next prev parent reply other threads:[~2009-01-20 15:01 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-20 11:05 lmbench lat_mmap slowdown with CONFIG_PARAVIRT Nick Piggin
2009-01-20 11:26 ` Ingo Molnar
2009-01-20 12:34 ` Nick Piggin
2009-01-20 12:45 ` Ingo Molnar
2009-01-20 13:41 ` Nick Piggin
2009-01-20 14:03 ` Ingo Molnar
2009-01-20 14:14 ` Nick Piggin
2009-01-20 14:17 ` Ingo Molnar
2009-01-20 14:41 ` Nick Piggin
2009-01-20 15:00 ` Ingo Molnar [this message]
2009-01-20 15:13 ` Ingo Molnar
2009-01-20 19:37 ` Ingo Molnar
2009-01-20 20:45 ` Jeremy Fitzhardinge
2009-01-20 20:56 ` Ingo Molnar
2009-01-21 7:27 ` Nick Piggin
2009-01-21 22:23 ` Jeremy Fitzhardinge
2009-01-22 22:28 ` Zachary Amsden
2009-01-22 22:44 ` Jeremy Fitzhardinge
2009-01-22 22:49 ` H. Peter Anvin
2009-01-22 22:58 ` Zachary Amsden
2009-01-22 23:52 ` H. Peter Anvin
2009-01-23 0:08 ` Jeremy Fitzhardinge
2009-01-22 22:55 ` Zachary Amsden
2009-01-23 0:14 ` Jeremy Fitzhardinge
2009-01-27 7:59 ` Ingo Molnar
2009-01-27 8:24 ` Jeremy Fitzhardinge
2009-01-27 10:17 ` Jeremy Fitzhardinge
2009-01-20 19:05 ` Zachary Amsden
2009-01-20 19:31 ` Ingo Molnar
2009-01-22 22:26 ` Jeremy Fitzhardinge
2009-01-22 23:04 ` Ingo Molnar
2009-01-22 23:30 ` Zachary Amsden
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=20090120150054.GA21931@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=chrisw@sous-sol.org \
--cc=hpa@zytor.com \
--cc=jeremy@xensource.com \
--cc=linux-kernel@vger.kernel.org \
--cc=npiggin@suse.de \
--cc=rusty@rustcorp.com.au \
--cc=torvalds@linux-foundation.org \
--cc=zach@vmware.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