Re: perfmon2 merge news

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Stephane Eranian
Date: Friday, November 16, 2007 - 9:00 am

Andi,

On Fri, Nov 16, 2007 at 04:15:56PM +0100, Andi Kleen wrote:
No, he is talking about something similar to what was in perfctr.
The kernel emulates 64-bit counters in software and that is you
get back when you read the counters. If you read via RDPMC, you
get 40 bits. To reconstruct the full 64-bit value from user land
you need the upper bits. One approach is for the kernel to allow
you to remap a page that has the 64-bit (software) counters. With
that and a bit of mask/shifting you can reconstruct the full value.

What I dropped is the cr4.pce enabled for self-monitoring sessions.

Read my follow-up message to Dean's message.

Perfmon2 allows you to have an in-kernel sampling buffer. The idea is
not new, Oprofile has this as well. The problem here is that if the
buffer is in the kernel the format of the samples is fixed and it
should have to. Tools may want to record samples in different formats
and as you said some may need extra information gathered in the kernel.
Some may want to aggregate samples in the kernel (Oprofile used to
do that), some may want to use a double-buffer approach to minimize
blind spots, others may simply use the counter overflow mechanism to
record something that is non-PMU related, e.g, kernel call stack.
I have built such a module and it was quite interesting to collect
the call stack when you hit a last cache level miss.

The idea behind customizable sampling format is simple: extract the
format from the perfmon core and put this into a kernel module. The
core provides a simple registration mechanism and the two communicate
via a set of callbacks.

Perfmon2 comes with a basic default format which works on all
platforms. But it is possible to develop others without having to
patch the kernel nor recompile nor reboot. At its core, each format provides
a handler routine which is called on counter overflow. The handler routine
controls what is recorded, how it is recorded, how it is exported to
userland, and wheher overflow notifications need to be sent.

Using this mechanism, for instance, we were able to connect the
Oprofile kernel code to perfmon2 on Itanium with a 100 lines of
code. The exact same approach would also work on X86 Oprofile as well.


This is also how we support PEBS because, as you said, the format of the
samples is not under your control. if you want zero-copy PEBS support,
you have to follow the PEBS format.

I am sure other processors haev and will have hardware buffers as well.

Yes, you could do that without changing the core implementation of
perfmon2.

-- 
-Stephane
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] fix up perfmon to build on -mm, Greg KH, (Tue Nov 6, 5:34 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 3:34 am)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 6:42 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 10:07 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 10:08 am)
Re: [PATCH] fix up perfmon to build on -mm, Andrew Morton, (Wed Nov 7, 10:33 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 10:41 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 10:47 am)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 10:50 am)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 10:57 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 12:53 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 1:39 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Thu Nov 8, 8:27 am)
Re: [PATCH] fix up perfmon to build on -mm, Andrew Morton, (Fri Nov 9, 1:06 pm)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Fri Nov 9, 2:38 pm)
Re: [PATCH] fix up perfmon to build on -mm, Andi Kleen, (Sat Nov 10, 1:32 pm)
perfmon2 merge news, Robert Richter, (Tue Nov 13, 8:17 am)
Re: [perfmon2] perfmon2 merge news, William Cohen, (Tue Nov 13, 8:35 am)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 10:55 am)
Re: perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 11:32 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, William Cohen, (Tue Nov 13, 11:33 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philip Mucci, (Tue Nov 13, 11:47 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 11:59 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andrew Morton, (Tue Nov 13, 1:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 1:14 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 1:36 pm)
Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 1:42 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 2:13 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 2:29 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 2:33 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 2:45 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 2:46 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 2:50 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 3:22 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 3:25 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Tue Nov 13, 3:27 pm)
Re: perfmon2 merge news, Christoph Hellwig, (Tue Nov 13, 3:29 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 3:58 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 4:49 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 5:25 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philip Mucci, (Tue Nov 13, 5:28 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 5:28 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 6:52 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 7:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 12:24 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andrew Morton, (Wed Nov 14, 12:40 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Wed Nov 14, 3:17 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Wed Nov 14, 3:38 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 3:43 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Wed Nov 14, 4:00 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Wed Nov 14, 4:03 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:12 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:14 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 4:39 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 4:44 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:52 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:52 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:58 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 5:03 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 5:07 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 5:38 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 6:09 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 6:47 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 6:51 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 7:13 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 7:24 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 7:26 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, William Cohen, (Wed Nov 14, 8:44 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 9:13 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philippe Elie, (Wed Nov 14, 11:53 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 12:15 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 12:48 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 2:30 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 2:50 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Chuck Ebbert, (Wed Nov 14, 3:56 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:03 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 4:12 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 4:21 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 5:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 5:23 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 6:11 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 6:27 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 7:34 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, dean gaudet, (Wed Nov 14, 9:20 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 9:47 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, dean gaudet, (Wed Nov 14, 10:14 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Herbert Xu, (Thu Nov 15, 12:48 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Thu Nov 15, 1:19 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Thu Nov 15, 1:53 am)
RE: [perfmon2] [perfmon] Re: perfmon2 merge news, Dan Terpstra, (Thu Nov 15, 10:01 am)
Re: perfmon2 merge news, Philip Mucci, (Fri Nov 16, 2:18 am)
Re: perfmon2 merge news, Andi Kleen, (Fri Nov 16, 8:15 am)
Re: perfmon2 merge news, Stephane Eranian, (Fri Nov 16, 9:00 am)
Re: perfmon2 merge news, Andi Kleen, (Fri Nov 16, 9:28 am)
Re: perfmon2 merge news, William Cohen, (Fri Nov 16, 10:13 am)
Re: perfmon2 merge news, Stephane Eranian, (Fri Nov 16, 10:36 am)
Re: perfmon2 merge news, dean gaudet, (Fri Nov 16, 10:51 am)
Re: PMC core internal API design, Mathieu Desnoyers, (Fri Nov 16, 11:25 am)
Re: perfmon2 merge news, Philip Mucci, (Fri Nov 16, 1:16 pm)
Re: perfmon2 merge news, David Miller, (Fri Nov 16, 5:15 pm)
Re: perfmon2 merge news, David Miller, (Fri Nov 16, 5:29 pm)
Re: perfmon2 merge news, Greg KH, (Fri Nov 16, 6:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 6:08 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Mon Nov 19, 1:53 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Mon Nov 19, 2:43 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Mon Nov 19, 3:48 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 5:53 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 5:55 pm)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Thu Dec 13, 9:00 am)
Re: [perfmon2] perfmon2 merge news, Frank Ch. Eigler, (Fri Dec 14, 12:12 pm)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Fri Dec 14, 2:07 pm)
Re: [perfmon2] perfmon2 merge news, Frank Ch. Eigler, (Sat Dec 15, 8:54 am)