From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Thomas Gleixner <tglx@linutronix.de>,
David Miller <davem@davemloft.net>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [RFC patch 15/15] LTTng timestamp x86
Date: Fri, 17 Oct 2008 14:42:15 -0400 [thread overview]
Message-ID: <20081017184215.GB9874@Krystal> (raw)
In-Reply-To: <57C9024A16AD2D4C97DC78E552063EA3533458AC@orsmsx505.amr.corp.intel.com>
* Luck, Tony (tony.luck@intel.com) wrote:
> > I agree that one cache line bouncer is devastating to performance. But
> > as Mathieu said, it is better than a global tracer with lots of bouncing
> > going on.
>
> Scale up enough, and it becomes more than just a performance problem.
> When SGI first tried to boot on 512 cpus they found the kernel hung
> completely because of a single global atomic counter for how many
> interrupts there were. With HZ=1024 and 512 cpus the ensuing cache
> line bouncing storm from each interrupt took longer to resolve than
> the interval between interrupts.
>
> With higher event rates (1KHz seems relatively low) this wall will
> be a problem for smaller systems too.
>
Hrm, on such systems
- *large* amount of cpus
- no synchronized TSCs
What would be the best approach to order events ? Do you think we should
consider using HPET, event though it's painfully slow ? Would it be
faster than cache-line bouncing on such large boxes ? With a frequency
around 10MHz, that would give a 100ns precision, which should be enough
to order events. However, HPET is known for its poor performances, which
I doubt will do better than the cache-line bouncing alternative.
> > ftrace does not have a global counter, but on some boxes with out of
> > sync TSCs, it could not find race conditions. I had to pull in logdev,
> > which found the race right away, because of this atomic counter.
>
> Perhaps this needs to be optional (and run-time switchable). Some
> users (tracking performance issues) will want the tracer to have
> the minumum possible effect on the system. Others (chasing race
> conditions) will want the best possible ordering of events between
> cpus[*].
>
Yup, I think this solution would work. The user could specify the time
source for a specific set of buffers (a trace) through debugfs files.
> -Tony
>
> [*] I'd still be concerned that a heavyweight strict ordering might
> perturb the system enough to make the race disappear when tracing
> is enabled.
>
Yes, it's true that it may make the race disappear, but what has been
seen in the field (Steven could confirm that) is that it usually makes
the race more likely to appear due to an enlarged race window. But I
guess it all depends on where the activated instrumentation is.
Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
next prev parent reply other threads:[~2008-10-17 18:42 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-16 23:27 [RFC patch 00/15] Tracer Timestamping Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 01/15] get_cycles() : kconfig HAVE_GET_CYCLES Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 02/15] get_cycles() : x86 HAVE_GET_CYCLES Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 03/15] get_cycles() : sparc64 HAVE_GET_CYCLES Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-17 2:48 ` [RFC patch 03/15] get_cycles() : sparc64 HAVE_GET_CYCLES (update) Mathieu Desnoyers
2008-10-17 2:48 ` Mathieu Desnoyers
2008-10-17 2:57 ` David Miller
2008-10-16 23:27 ` [RFC patch 04/15] get_cycles() : powerpc64 HAVE_GET_CYCLES Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-17 0:26 ` Paul Mackerras
2008-10-17 0:43 ` [RFC patch 04/15] get_cycles() : powerpc64 HAVE_GET_CYCLES (update) Mathieu Desnoyers
2008-10-17 0:43 ` Mathieu Desnoyers
2008-10-17 0:54 ` Paul Mackerras
2008-10-17 1:42 ` David Miller
2008-10-17 2:08 ` Mathieu Desnoyers
2008-10-17 2:08 ` Mathieu Desnoyers
2008-10-17 2:33 ` David Miller
2008-10-16 23:27 ` [RFC patch 05/15] get_cycles() : MIPS HAVE_GET_CYCLES_32 Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-26 10:18 ` Ralf Baechle
2008-10-26 10:18 ` Ralf Baechle
2008-10-26 20:39 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 06/15] LTTng build Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-17 8:10 ` KOSAKI Motohiro
2008-10-17 16:18 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 07/15] LTTng timestamp Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-17 8:15 ` KOSAKI Motohiro
2008-10-17 16:23 ` Mathieu Desnoyers
2008-10-17 16:23 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 08/15] LTTng - Timestamping Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 09/15] LTTng mips export hpt frequency Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 10/15] LTTng timestamp mips Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 11/15] LTTng timestamp powerpc Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 12/15] LTTng timestamp sparc64 Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 13/15] LTTng timestamp sh Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 14/15] LTTng - TSC synchronicity test Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-16 23:27 ` [RFC patch 15/15] LTTng timestamp x86 Mathieu Desnoyers
2008-10-16 23:27 ` Mathieu Desnoyers
2008-10-17 0:08 ` Linus Torvalds
2008-10-17 0:12 ` Linus Torvalds
2008-10-17 1:28 ` Mathieu Desnoyers
2008-10-17 2:19 ` Luck, Tony
2008-10-17 2:19 ` Luck, Tony
2008-10-17 17:25 ` Steven Rostedt
2008-10-17 18:08 ` Luck, Tony
2008-10-17 18:42 ` Mathieu Desnoyers [this message]
2008-10-17 18:58 ` Luck, Tony
2008-10-17 20:23 ` Mathieu Desnoyers
2008-10-17 23:52 ` Luck, Tony
2008-10-18 17:01 ` Mathieu Desnoyers
2008-10-18 17:01 ` Mathieu Desnoyers
2008-10-18 17:35 ` Linus Torvalds
2008-10-18 17:50 ` Ingo Molnar
2008-10-22 16:19 ` Mathieu Desnoyers
2008-10-22 15:53 ` Mathieu Desnoyers
2008-10-20 18:07 ` Luck, Tony
2008-10-22 16:51 ` Mathieu Desnoyers
2008-10-17 19:17 ` Steven Rostedt
2008-10-20 20:10 ` Linus Torvalds
2008-10-20 20:10 ` Linus Torvalds
2008-10-20 21:38 ` john stultz
2008-10-20 22:06 ` Linus Torvalds
2008-10-20 22:17 ` Ingo Molnar
2008-10-20 22:17 ` Ingo Molnar
2008-10-20 22:29 ` H. Peter Anvin
2008-10-20 22:29 ` H. Peter Anvin
2008-10-21 18:10 ` Bjorn Helgaas
2008-10-23 15:47 ` Linus Torvalds
2008-10-23 16:39 ` H. Peter Anvin
2008-10-23 21:54 ` Paul Mackerras
2008-10-20 23:47 ` john stultz
2008-10-20 23:47 ` john stultz
2008-10-22 17:05 ` Mathieu Desnoyers
2008-10-17 19:36 ` Christoph Lameter
2008-10-17 7:59 ` [RFC patch 00/15] Tracer Timestamping Peter Zijlstra
2008-10-20 20:25 ` Mathieu Desnoyers
2008-10-20 20:25 ` Mathieu Desnoyers
2008-10-21 0:20 ` Nicolas Pitre
2008-10-21 1:32 ` Mathieu Desnoyers
2008-10-21 2:32 ` Nicolas Pitre
2008-10-21 4:05 ` Mathieu Desnoyers
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=20081017184215.GB9874@Krystal \
--to=mathieu.desnoyers@polymtl.ca \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.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