Re: PMC core internal API design

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Mathieu Desnoyers
Date: Friday, November 16, 2007 - 11:25 am

* Stephane Eranian (eranian@hpl.hp.com) wrote:

(jumping in late in the game)

Linux Trace Toolkit Next Generation would _happily_ use global PMC
counters, but I would prefer to interact with an internal kernel API
rather than being required to start/stop counters from user-space. There
is a big precision loss involved in having to start things from
userspace.

Ideally, this API would manage access to available PMCs and even use the
same counters for both system-wide tracing/profiling done at the same
time as user-space profiling. This would however involve having a
wrapper around both user-space and kernel-space performance counter
reads, which is fine with me. I would suggest that user-space still go
through a system call for this, since this is available a early boot,
before the filesystem is mounted.

This API could offer to in-kernel architecture _independent_ PMC control
interface to :
- list available PMCs
  - That would involve mapping the common PMCs to some generic
    identifier
- attach to these PMCs, with a certain priority

We could call a single connexion to a PMC a "virtual PMC". All PMC
accesses should then be done through this internally managed structure
(giving callbacks to be called after a certain count, reads, stop...).
We could have virtual PMCs that are : system wide, or per thread.

As a starting point, we could limit one virtual PMC attached to a
physical PMC at a given time. Later, we could add support for multiple
virtual PMCs connected to a single physical PMC. The priorities could be
used to kick out the PMC users with lower priorities (that involves that
a PMC read could fail!).

Then, to get interrupts or signals upon PMC overflow, we could manage
each physical PMC like a timer, using the lowest requested value for the
next time were are to be awakened. Some logic would have to be added to
the pmc read operation to get the "real" expected value, but this is
nothing difficult.

Those were the ideas I had last OLS after hearing the talk about
perfmon2. I hope they can be useful. If things need to be clarified, I
will gladly discuss them further.

Mathieu

P.S. : the rest of the feature list _should_ be easy to implement on top
of this internal architecture.


-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
-
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)