From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: "H. Peter Anvin" <hpa@zytor.com>, Peter Zijlstra <peterz@infradead.org>
Cc: Andi Kleen <andi@firstfloor.org>,
Arjan van de Ven <arjan@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Venkatesh Pallipadi <venki@google.com>,
Ingo Molnar <mingo@elte.hu>,
chris.mason@oracle.com, linux-kernel@vger.kernel.org
Subject: RE: [PATCH] x86: Export tsc related information in sysfs
Date: Tue, 18 May 2010 10:49:55 -0700 (PDT) [thread overview]
Message-ID: <1dc4abc2-6455-4b95-90f6-c86bf56ff39a@default> (raw)
In-Reply-To: <4BF2C881.60807@zytor.com>
> From: H. Peter Anvin [mailto:hpa@zytor.com]
> Sent: Tuesday, May 18, 2010 11:04 AM
> To: Peter Zijlstra
> Cc: Andi Kleen; Arjan van de Ven; Dan Magenheimer; Thomas Gleixner;
> Venkatesh Pallipadi; Ingo Molnar; Chris Mason; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH] x86: Export tsc related information in sysfs
>
> On 05/18/2010 09:52 AM, Peter Zijlstra wrote:
> > On Tue, 2010-05-18 at 09:40 -0700, H. Peter Anvin wrote:
> >>
> >> The problem is that you throw the baby (vsyscall) out with the
> bathwater
> >> (user rdtsc).
> >
> > Well, we could only flip the CR4 bit when we mark the TSC unsuitable
> for
> > gtod. That should be plenty good to tag all userspace trying to use
> it,
> > since more than half my machines don't use TSC for clocksource.
>
> This might be an option, although it would have to be an *option*.
> There are restricted uses of the TSC in userspace which are still
> useful
> (mainly involving performance analysis and/or CPU-locked processes).
(Though I expect tglx/arjan/andi/mingo to disagree with this proposal
for similar reasons as the original one that started this thread...)
Proposal:
/sys/devices/system/tsc/native (writable by root):
0 = (default) Kernel dynamically controls TSC emulation.
When the kernel deems TSC usable as a clocksource, rdtsc
will be executed directly by the CPU. When the kernel deems
TSC unsafe to use, rdtsc will be trapped and emulated.
1 = TSC emulation is never enabled. Programs using rdtsc
directly are subject to the many known and sometimes rare
and subtle vagaries of TSC.
2 = TSC emulation is always enabled (for debug only)
3 = Processes using TSC will be treated as if they executed
an illegal instruction. [? Can the kernel recognize
use of rdtsc in a vsyscall and emulate so that,
even though vsyscall is slower, all other rdtsc
in userspace are illegal?] [? Can/should this be
enforced only on non-root processes?]
/sys/devices/system/tsc/system_count (writable by root):
Contains a count of all TSC emulations, system-wide.
Writable to allow reset to zero.
/sys/devices/system/tsc/pid_counters (writable by root):
0 = (default) TSC counts are system-wide only
1 = TSC counted per pid (at performance penalty)
counters in /proc/PID/tsc_count
/proc/PID/tsc_count (readonly):
If /sys/devices/system/tsc_pid_counters is 1,
contains the count of rdtsc instructions emulated
for this PID.
(Note: except for the actual instruction emulation
which will be faithful, rdtscp will be treated and
counted as a rdtsc.)
next prev parent reply other threads:[~2010-05-18 17:53 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
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 [this message]
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=1dc4abc2-6455-4b95-90f6-c86bf56ff39a@default \
--to=dan.magenheimer@oracle.com \
--cc=andi@firstfloor.org \
--cc=arjan@infradead.org \
--cc=chris.mason@oracle.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--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
Powered by JetHome