From: Arjan van de Ven <arjan@infradead.org>
To: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Andi Kleen <andi@firstfloor.org>,
Venkatesh Pallipadi <venki@google.com>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
chris.mason@oracle.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: Export tsc related information in sysfs
Date: Sat, 15 May 2010 12:14:24 -0700 [thread overview]
Message-ID: <20100515121424.38f5b389@infradead.org> (raw)
In-Reply-To: <35aa841b-e151-424d-b1c1-0c03dbcae5cc@default>
On Sat, 15 May 2010 06:29:25 -0700 (PDT)
Dan Magenheimer <dan.magenheimer@oracle.com> wrote:
> > It would be better to fix them to use the vsyscalls instead.
> > Or if they can't use the vsyscalls for some reason today fix them.
>
> The problem is from an app point-of-view there is no vsyscall.
> There are two syscalls: gettimeofday and clock_gettime. Sometimes,
> if it gets lucky, they turn out to be very fast and sometimes
> it doesn't get lucky and they are VERY slow (resulting in a
> performance hit of 10% or more), depending on a number of factors
> completely out of the control of the app and even undetectable to the
> app.
But the point is.. in the case you get that 10% hit.... that is exactly
the case where tsc would not work either!!!
>
> If tsc_reliable is 1, the system and the kernel are guaranteeing
> to the app that nothing will change in the TSC. In an Invariant
> TSC system that has passed Ingo's warp test (to eliminate the
> possibility of a fixed interprocessor TSC gap due to a broken BIOS
> in a multi-node NUMA system), if anything changes in the clock
just when we're trying to get rid of this constraint by allowing a per
cpu offset... (this is needed to cope with cpus not powering on at the
exact same time... including hotplug cpu etc etc)
oh and.. what notification mechanism do you have to notify the
application that the tsc now is no longer reliable? Such conditions
can exist... for example due to a CPU being hotplugged, or some SMM
screwing around and the kernel detecting that or .. or ...
really. Use the vsyscall. If the vsyscall does not do exactly what you
want, make a better vsyscall.
But friends don't let friends use rdtsc in application code.
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
next prev parent reply other threads:[~2010-05-15 19:11 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-15 1:40 Venkatesh Pallipadi
2010-05-15 9:57 ` Andi Kleen
2010-05-15 13:29 ` Dan Magenheimer
2010-05-15 16:48 ` Venkatesh Pallipadi
2010-05-15 19:14 ` Arjan van de Ven [this message]
2010-05-15 22:32 ` Dan Magenheimer
2010-05-16 5:43 ` Arjan van de Ven
2010-05-16 9:20 ` Thomas Gleixner
2010-05-16 16:42 ` Dan Magenheimer
2010-05-16 19:14 ` Thomas Gleixner
2010-05-17 1:31 ` Dan Magenheimer
2010-05-17 5:06 ` Arjan van de Ven
2010-05-18 9:58 ` Peter Zijlstra
2010-05-18 10:03 ` Peter Zijlstra
2010-05-18 11:25 ` Andi Kleen
2010-05-18 11:58 ` Peter Zijlstra
2010-05-18 15:13 ` Dan Magenheimer
2010-05-18 16:40 ` H. Peter Anvin
2010-05-18 16:52 ` Peter Zijlstra
2010-05-18 17:04 ` H. Peter Anvin
2010-05-18 17:49 ` Dan Magenheimer
2010-05-18 18:46 ` H. Peter Anvin
2010-05-18 19:00 ` Dan Magenheimer
2010-05-18 19:16 ` Dan Magenheimer
2010-05-18 19:26 ` H. Peter Anvin
2010-05-18 20:29 ` Dan Magenheimer
2010-05-18 20:34 ` H. Peter Anvin
2010-05-18 21:02 ` Dan Magenheimer
2010-05-18 21:13 ` Andi Kleen
2010-05-19 6:26 ` Peter Zijlstra
2010-05-17 10:20 ` Thomas Gleixner
2010-05-16 20:29 ` Arjan van de Ven
2010-05-17 10:26 ` Andi Kleen
2010-06-04 14:24 ` Pavel Machek
2010-05-15 22:45 ` Thomas Gleixner
2010-05-17 10:22 ` Andi Kleen
2010-05-17 15:23 ` Dan Magenheimer
2010-05-17 16:56 ` Andi Kleen
2010-05-17 22:36 ` Thomas Gleixner
2010-05-17 23:33 ` Dan Magenheimer
2010-05-18 0:00 ` Ingo Molnar
2010-05-18 0:02 ` Ingo Molnar
2010-05-15 12:35 ` Jaswinder Singh Rajput
2010-05-15 14:37 ` Venkatesh Pallipadi
2010-05-20 19:19 Brian Bloniarz
2010-05-22 2:03 ` john stultz
2010-05-22 3:33 ` H. Peter Anvin
2010-05-24 18:13 ` Dan Magenheimer
2010-05-24 18:19 ` H. Peter Anvin
2010-05-24 18:51 ` john stultz
2010-05-24 20:20 ` H. Peter Anvin
2010-05-24 20:39 ` john stultz
2010-05-24 21:26 ` H. Peter Anvin
2010-05-24 22:04 ` Dan Magenheimer
2010-05-24 22:30 ` H. Peter Anvin
2010-05-24 22:49 ` john stultz
2010-05-24 23:16 ` Dan Magenheimer
2010-05-24 23:19 ` H. Peter Anvin
2010-05-24 23:30 ` john stultz
2010-05-24 23:42 ` Andi Kleen
2010-05-25 0:01 ` Dan Magenheimer
2010-05-25 0:07 ` H. Peter Anvin
2010-05-25 1:33 ` Brian Bloniarz
2010-05-26 0:16 ` Brian Bloniarz
2010-05-26 0:48 ` john stultz
2010-05-26 2:50 ` Brian Bloniarz
2010-05-26 12:35 ` Thomas Gleixner
2010-05-26 14:26 ` Dan Magenheimer
2010-05-26 14:41 ` Thomas Gleixner
2010-05-26 15:04 ` john stultz
2010-05-26 16:02 ` Brian Bloniarz
2010-05-26 16:25 ` john stultz
2010-05-26 18:24 ` H. Peter Anvin
2010-05-26 18:44 ` Brian Bloniarz
2010-05-26 18:51 ` H. Peter Anvin
2010-05-26 20:19 ` john stultz
2010-05-26 21:06 ` H. Peter Anvin
2010-05-26 19:49 ` john stultz
2010-05-26 20:22 ` Brian Bloniarz
2010-05-26 12:30 ` Thomas Gleixner
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=20100515121424.38f5b389@infradead.org \
--to=arjan@infradead.org \
--cc=andi@firstfloor.org \
--cc=chris.mason@oracle.com \
--cc=dan.magenheimer@oracle.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=venki@google.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
all inboxes | Powered by JetHome®