Re: [PATCH 5/6] perf_counter: add more context information

From: Corey Ashford
Date: Tue Apr 07 2009 - 12:28:20 EST


Peter Zijlstra wrote:
On Mon, 2009-04-06 at 14:33 -0700, Corey Ashford wrote:
Peter Zijlstra wrote:
On Mon, 2009-04-06 at 14:15 -0700, Corey Ashford wrote:
Peter Zijlstra wrote:
On Mon, 2009-04-06 at 13:16 -0700, Corey Ashford wrote:

One downside of this approach is that you if you specify "no header" (currently not possible, but maybe later?), you will not be able to get the level bits.
Would this be desirable?
I think it would. For one use case I'm working on right now, simple profiling, all I need are ip's. If I could omit the header, that would reduce the frequency of sigio's by a factor of three, and make it faster to read up the ip's when the SIGIO's occur.
Self-profiling?

So you're interested in getting the smallest possible record size, that
would still be 2 u64, right? Otherwise you don't get the IP context that
started this.


Self-profiling mainly, yes. PAPI specs an ability for remote monitoring of processes and threads, but I think it's only partially implemented.

So when you are talking about IP context, you mean pid/tid?
Ah, we called it level before, the hv/kernel/user thing. For remote
profiling you'd want to have the mmap thing too.
Oh I see. In PAPI, the user specifies the range(s) of addresses he's interested in profiling (any sampled IP's outside the requested ranges are discarded), and so as long as the kernel space IP's don't overlap with user space IP's, we should be fine.

Ah, while this would be true for most 'sane' architectures, Paul was
right in pointing out that this is not true for all architectures -- and
we should therefore not rely on address range alone.

You could of course use: hw_event.exclude_{hv,kernel} = 1 to ensure you
only get userspace thingies I suppose (but then you have no way of
telling how many you missed I guess).

That's a good point. PAPI's profiling API doesn't have a way for the caller to distinguish which address spaces (user/kernel/hv) he wants to profile. It does have a way to designate which levels to ignore, but if you enable them all, you cannot specify the profiling address ranges pertaining to each. That may be something I could propose adding to PAPI. I suspect it would be pretty rarely used, though.

- Corey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/