Re: [perfmon] Re: [perfmon2] perfmon2 merge news

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: dean gaudet <dean@...>
Cc: Andi Kleen <andi@...>, Christoph Hellwig <hch@...>, Paul Mackerras <paulus@...>, Andrew Morton <akpm@...>, Greg KH <gregkh@...>, Philip Mucci <mucci@...>, William Cohen <wcohen@...>, Robert Richter <robert.richter@...>, <linux-kernel@...>, Stephane Eranian <eranian@...>
Date: Thursday, November 15, 2007 - 4:53 am

Hello,

On Wed, Nov 14, 2007 at 08:20:22PM -0800, dean gaudet wrote:

Multiplexing in the context of perfmon2 means that you can measure more events
than there are counters. To make this work, we create the notion of an event set
or more precisely a register set. Each set encapsulates the full PMU state. Then
the kernel multiplexes the sets onto the actual PMU hardware.

Why do we need this?

As Dean pointed out, that are many important metrics which do require more events
than there are counters. Making multiple runs can be difficult with some workloads.

But there are also other, less known, reasons why you'd want to do this. This is
not because you have lots of counters that you can necessarily measure lots of
related events simultaneously. Take pentium 4 for instance, it has 18 counters, but
for most interesting metrics, you cannot measure all the events at once. Why? Because
there are important hardware constraints which translate into event combination 
constraints. It is not uncommon to have constraints such as:
	- event A and B cannot be measured together
	- event A can only be measured by counter X
	- if event A is measured, then only events B, C, D can be measured

This is not just on Itanium. Power has limitations, Intel Core 2 has limitations,
AMD Opterons also have limitations.

When you combine limited number of counters with strong constraints, it can quickly
become difficult to make measurements in one run.

Multiplexing is, of course, not as good as measuring all events continuously but
if you run for long enough and with a reasonable switching periods, the *estimates*
you get by scaling the obtained counts can be very close to what they would have
been had you measured all events all the time. You have to balance precision with
overhead.

Why do this in the kernel?

One might argue that there is nothing preventing tools from multiplexing at the user
level. That's true and we do support this as well. You have to:
		- stop monitoring
		- read out current counter
		- reprogram config and data registers
		- restart monitoring

But there are some important benefits for doing this in the kernel especially for
per-thread monitoring. When you are not self-monitoring, you would need to stop the
other thread first, then issue a minimum of 4 system calls and incur a couple of
context switches. By doing it in the kernel, you guaranteed that switching always occur
in the context of the monitored thread.

Furthermore it can be integrated with kernel-level sampling. Adding the notion
of event set is fairly pervasive and you need to make sure that it fits well with
the other parts of the interface.

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