From: Ingo Molnar <mingo@elte.hu>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Help understanding slow down
Date: Tue, 25 May 2004 14:25:40 +0200 [thread overview]
Message-ID: <20040525122539.GA7673@elte.hu> (raw)
In-Reply-To: <20040525025826.6c31c71f.akpm@osdl.org>
* Andrew Morton <akpm@osdl.org> wrote:
> > it makes it a bit more plausible, but kernel profiling based on ticks in
> > a HT environment is still quite unreliable, even with idle=poll. The HT
> > cores will yield to each other on various occasions - like spinlock
> > loops. This disproportionatly increases the hits of various looping
> > functions, creating false impressions of lock contention where there's
> > only little contention. Plus idle=poll is a constant ~20% performance
> > drain on the non-idle HT core, further distorting the profile. HT makes
> > profiling really hard, no matter what.
>
> But often one is looking for relativities rather than real absolute
> numbers. (In which case the absent idle time doesn't matter, but it
> freaks me out...)
but it's the relativities that get skewed by HT, fundamentally - both
with and without idle=poll. A function that does not generate alot of
HT-yield activity will fare much less on the profiler histogram than a
function that happens to hit some contention point every now and then.
Also, cachemisses get far more prominent due to HT (they are a yield
point too) - suppressing other, possibly more important functions in the
list. So a kernel profile done under HT gives a rough idea but a
function could easily have half the overhead that the profiler credits
it to have. Profiling under HT magnifies the effect of lock-contention
and cache-misses, and shrinks the effect of algorithmic overhead. Plus
this skewing is not deterministic, it depends on the actual system
activity.
unfortunately i see no good way to do reliable time-based profiling
under HT, given the interaction of logical CPUs. The virtual CPUs break
the single-EIP notion of 'what is this physical CPU doing now'. Perhaps
it would be more reliable to not use time but use some of the other
triggers: e.g. # of uops retired?
Ingo
next prev parent reply other threads:[~2004-05-25 10:36 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-24 0:32 Help understanding slow down Phy Prabab
2004-05-24 0:57 ` Phy Prabab
2004-05-24 1:04 ` William Lee Irwin III
2004-05-24 1:25 ` Jakob Oestergaard
2004-05-24 1:28 ` William Lee Irwin III
2004-05-24 1:51 ` Phy Prabab
2004-05-24 2:42 ` Nick Piggin
2004-05-24 2:43 ` Andrew Morton
2004-05-24 6:23 ` Phy Prabab
2004-05-24 6:27 ` William Lee Irwin III
2004-05-24 6:39 ` Phy Prabab
2004-05-24 7:21 ` Phy Prabab
2004-05-24 7:44 ` Nick Piggin
2004-05-24 7:50 ` Phy Prabab
2004-05-24 7:59 ` Nick Piggin
2004-05-24 10:43 ` Jakob Oestergaard
2004-05-24 14:13 ` Martin J. Bligh
2004-05-24 7:53 ` Andrew Morton
2004-05-24 8:00 ` Phy Prabab
2004-05-25 10:32 ` Ingo Molnar
2004-05-25 9:29 ` Andrew Morton
2004-05-25 11:42 ` Ingo Molnar
2004-05-25 9:58 ` Andrew Morton
2004-05-25 12:25 ` Ingo Molnar [this message]
2004-05-24 6:33 ` Paul Rolland
2004-05-24 17:28 ` Roger Luethi
-- strict thread matches above, loose matches on Subject: below --
2004-05-24 1:37 Robert M. Stockmann
2004-05-24 1:50 ` Phy Prabab
2004-05-24 3:31 ` Robert M. Stockmann
2004-05-24 6:14 ` Phy Prabab
2004-05-24 18:36 ` Robert M. Stockmann
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=20040525122539.GA7673@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.