From: Stephane Eranian <eranian@hpl.hp.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Christoph Hellwig <hch@infradead.org>,
Paul Mackerras <paulus@samba.org>,
Andrew Morton <akpm@linux-foundation.org>,
Greg KH <gregkh@suse.de>, Philip Mucci <mucci@cs.utk.edu>,
William Cohen <wcohen@redhat.com>,
Robert Richter <robert.richter@amd.com>,
linux-kernel@vger.kernel.org, Perfmon <perfmon@napali.hpl.hp.com>,
perfmon2-devel@lists.sourceforge.net,
OSPAT devel <ospat-devel@cs.utk.edu>,
papi list <ptools-perfapi@cs.utk.edu>
Subject: Re: [perfmon] Re: [perfmon2] perfmon2 merge news
Date: Wed, 14 Nov 2007 06:13:42 -0800 [thread overview]
Message-ID: <20071114141342.GH6557@frankl.hpl.hp.com> (raw)
In-Reply-To: <p734pfp6lyp.fsf@bingen.suse.de>
Andi,
On Wed, Nov 14, 2007 at 01:38:38PM +0100, Andi Kleen wrote:
> Christoph Hellwig <hch@infradead.org> writes:
> >
> > I've done this a gazillion times before, so maybe instead of beeing a lazy
> > bastard you could look up mailinglist archive. It's not like this is the
> > first discussion of perfmon. But to get start look at the systems calls,
> > many of them are beasts like:
> >
> > int pfm_read_pmds(int fd, pfarg_pmd_t *pmds, int n)
> >
> > This is basically a read(2) (or for other syscalls a write) on something
>
> At least for x86 and I suspect some 1other architectures we don't
> initially need a syscall at all for this. There is an instruction
> RDPMC who can read a performance counter just fine. It is also much
> faster and generally preferable for the case where a process measures
> events about itself. In fact it is essential for one of the use cases
> I would like to see perfmon used (replacement of RDTSC for cycle
> counting)
>
This only works when counting (not sampling) and only for self-monitoring.
> Later a syscall might be needed with event multiplexing, but that seems
> more like a far away non essential feature.
>
On a machine with only two generic counters such as MIPS or Intel Core 2 Duo,
multiplexing offers some advantages. If NMI watchdog is enabled, then you drop
to one generic counter on on Core 2.
> > else than the file descriptor provided to the system call. The right thing
>
> I don't like read/write for this too much. I think it's better to
> have individual syscalls. After all that is CPU state and having
> syscalls for that does seem reasonable.
As I said earlier, we do use read(), not for reading counters but to extract overflow
notification messages when we are sampling. It makes more sense for this usage because
this is where you want to leverage some key mechanisms such as:
- asynchronous notification via SIGIO. this is how you can implement self-sampling
for instance.
- select/poll to allow monitoring tools to wait for notification coming from
multiple sessions in one call. This is useful when monitoring across fork or
pthread_create.
--
-Stephane
next prev parent reply other threads:[~2007-11-14 14:20 UTC|newest]
Thread overview: 116+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-07 0:34 [PATCH] fix up perfmon to build on -mm Greg KH
2007-11-07 10:34 ` Stephane Eranian
2007-11-07 17:07 ` Greg KH
2007-11-07 13:42 ` Stephane Eranian
2007-11-07 17:08 ` Greg KH
2007-11-07 17:33 ` Andrew Morton
2007-11-07 17:41 ` Greg KH
2007-11-07 17:50 ` Stephane Eranian
2007-11-07 17:47 ` Greg KH
2007-11-07 17:57 ` Stephane Eranian
2007-11-07 19:53 ` Greg KH
2007-11-07 20:39 ` Stephane Eranian
2007-11-08 15:27 ` Stephane Eranian
2007-11-09 20:06 ` Andrew Morton
2007-11-09 21:38 ` Greg KH
2007-11-10 20:32 ` Andi Kleen
2007-11-13 15:17 ` perfmon2 merge news Robert Richter
2007-11-13 15:35 ` [perfmon2] " William Cohen
2007-11-13 17:55 ` Stephane Eranian
2007-11-13 18:33 ` [perfmon] " William Cohen
2007-11-13 21:13 ` Stephane Eranian
2007-11-13 21:29 ` Andi Kleen
2007-11-13 21:46 ` Stephane Eranian
2007-11-13 21:50 ` Andi Kleen
2007-11-13 22:22 ` Stephane Eranian
2007-11-13 22:25 ` Andi Kleen
2007-11-13 22:58 ` Stephane Eranian
2007-11-14 2:07 ` Andi Kleen
2007-11-14 13:09 ` Stephane Eranian
2007-11-14 14:24 ` Andi Kleen
2007-11-14 15:44 ` William Cohen
2007-11-14 16:13 ` Stephane Eranian
2007-11-14 18:53 ` Philippe Elie
2007-11-14 19:15 ` Andi Kleen
2007-11-15 0:07 ` Stephane Eranian
2007-11-13 18:47 ` Philip Mucci
2007-11-13 18:59 ` Greg KH
2007-11-13 20:07 ` Andrew Morton
2007-11-13 20:14 ` Greg KH
2007-11-13 20:36 ` Andi Kleen
2007-11-14 0:28 ` Philip Mucci
2007-11-14 1:52 ` Andi Kleen
2007-11-16 9:18 ` Philip Mucci
2007-11-16 15:15 ` Andi Kleen
2007-11-16 16:00 ` Stephane Eranian
2007-11-16 16:28 ` Andi Kleen
2007-11-16 17:13 ` William Cohen
2007-11-16 21:56 ` Stephane Eranian
2007-11-16 17:36 ` Stephane Eranian
2007-11-16 17:51 ` dean gaudet
2007-11-17 0:29 ` David Miller
2007-11-17 1:07 ` Greg KH
2007-11-16 20:16 ` Philip Mucci
2007-11-17 0:15 ` David Miller
[not found] ` <1d7226b10711161713j675341b7wdb4f050c59a8be0a@mail.gmail.com>
2007-11-17 1:25 ` Greg KH
[not found] ` <1d7226b10711161748n39b7f195q796d85282ef66134@mail.gmail.com>
2007-11-17 2:13 ` Greg KH
2007-11-14 7:24 ` [perfmon] Re: [perfmon2] " Paul Mackerras
2007-11-14 7:40 ` Andrew Morton
2007-11-14 10:38 ` Christoph Hellwig
2007-11-14 10:43 ` Paul Mackerras
2007-11-14 11:00 ` Christoph Hellwig
2007-11-14 11:12 ` David Miller
2007-11-14 11:14 ` David Miller
2007-11-14 11:44 ` Paul Mackerras
2007-11-13 23:49 ` Nick Piggin
2007-11-14 11:58 ` David Miller
2007-11-14 0:25 ` Nick Piggin
2007-11-14 21:30 ` Paul Mackerras
2007-11-14 10:17 ` Nick Piggin
2007-11-14 22:56 ` Chuck Ebbert
2007-11-14 11:03 ` Nick Piggin
2007-11-14 11:52 ` David Miller
2007-11-14 12:03 ` Paul Mackerras
2007-11-14 12:07 ` David Miller
2007-11-14 0:28 ` Nick Piggin
2007-11-14 21:50 ` Paul Mackerras
2007-11-14 23:03 ` David Miller
2007-11-14 23:12 ` Paul Mackerras
2007-11-14 23:21 ` David Miller
2007-11-15 1:11 ` Paul Mackerras
2007-11-15 1:27 ` David Miller
2007-11-15 2:34 ` Paul Mackerras
2007-11-15 7:48 ` Herbert Xu
2007-11-15 8:19 ` Andi Kleen
2007-11-19 13:08 ` David Miller
2007-11-19 20:53 ` Stephane Eranian
2007-11-20 0:55 ` David Miller
2007-11-19 21:43 ` Paul Mackerras
2007-11-19 22:48 ` Stephane Eranian
2007-11-20 0:53 ` David Miller
2007-12-13 16:00 ` Stephane Eranian
2007-12-14 19:12 ` Frank Ch. Eigler
2007-12-14 21:07 ` Stephane Eranian
2007-12-15 15:54 ` Frank Ch. Eigler
2007-11-15 8:29 ` [perfmon] " Stephane Eranian
2007-11-14 13:51 ` Stephane Eranian
2007-11-14 11:39 ` Paul Mackerras
2007-11-14 11:52 ` David Miller
2007-11-14 13:47 ` Stephane Eranian
2007-11-14 12:38 ` Andi Kleen
2007-11-14 14:13 ` Stephane Eranian [this message]
2007-11-14 14:26 ` Andi Kleen
2007-11-15 0:23 ` Paul Mackerras
2007-11-14 19:48 ` David Miller
2007-11-15 4:20 ` dean gaudet
2007-11-15 4:47 ` Paul Mackerras
2007-11-15 5:14 ` dean gaudet
2007-11-15 8:53 ` Stephane Eranian
2007-11-15 17:01 ` [perfmon2] [perfmon] " Dan Terpstra
2007-11-13 21:33 ` [perfmon] Re: [perfmon2] " Stephane Eranian
2007-11-13 21:45 ` Greg KH
2007-11-13 22:27 ` Christoph Hellwig
2007-11-13 20:42 ` Andi Kleen
2007-11-13 18:32 ` Stephane Eranian
2007-11-13 22:29 ` Christoph Hellwig
2007-11-16 18:25 ` PMC core internal API design 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=20071114141342.GH6557@frankl.hpl.hp.com \
--to=eranian@hpl.hp.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=gregkh@suse.de \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mucci@cs.utk.edu \
--cc=ospat-devel@cs.utk.edu \
--cc=paulus@samba.org \
--cc=perfmon2-devel@lists.sourceforge.net \
--cc=perfmon@napali.hpl.hp.com \
--cc=ptools-perfapi@cs.utk.edu \
--cc=robert.richter@amd.com \
--cc=wcohen@redhat.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