Messages in this thread | | | Date | Mon, 13 May 2013 21:43:13 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 0/9] perf: Adding better precise_ip field handling |
| |
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Sat, May 11, 2013 at 09:50:08AM +0200, Ingo Molnar wrote: > > That's really a red herring: there's absolutely no reason why the > > kernel could not pass back the level of precision it provided. > > All I've been saying is that doing random precision without feedback is > confusing.
I agree with that.
> We also don't really have a good feedback channel for this kind of > thing. The best I can come up with is tagging each and every sample with > the quality it represents. I think we can do with only one extra > PERF_RECORD_MISC bit, but it looks like we're quickly running out of > those things.
Hm, how about passing precision back to user-space at creation time, in the perf_attr data structure? There's no need to pass it back in every sample, precision will not really change during the life-time of an event.
> But I think the biggest problem is PEBS's inability do deal with REP > prefixes; see this email from Stephane: > https://lkml.org/lkml/2011/2/1/177 > > It is really unfortunate for PEBS to have such a side-effect; but it > makes all memset/memcpy/memmove things appear like they have no cost. > I'm very sure that will surprise a number of people.
I'd expect PEBS to get gradually better.
Note that at least for user-space, REP MOVS is getting rarer. libc uses SSE based memcpy/memset variants - which is not miscounted by PEBS. The kernel still uses REP MOVS - but it's a special case because it cannot cheaply use vector registers.
The vast majority of code gets measured by cycles:pp more accurately than cycles.
We could try and see how many people complain. It's not like it's hard to undo such a change of the default event?
Thanks,
Ingo
| |