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 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
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 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®