Re: [PATCH 05/34] perf, x86: Report PEBS event in a raw format

Peter Zijlstra
2012-10-23T13:51:38Z

On Tue, 2012-10-23 at 15:30 +0200, Andi Kleen wrote:
> > Also, there's an alignment issue there, the raw.data is 32bit offset,
> > the record is u64 aligned, leaving the output stream offset, wrecking
> > things.
>
> Can you explain more? Not sure I understand.

PERF_SAMPLE_RAW has a u32 size header and starts the data after that.
This means you PERF_SAMPLE_RAW output ends up on a u32 aligned end
address -- assuming the data is a u64 multiple, this is not good.

> It appears to work at least.

It would on x86, I'm fairly sure it'll break on things like SPARC. We
used to have checks in the userspace code to warn for this on x86 as
well. Not sure if that's still there.

Hmm, so in kernel/events/core.c:perf_prepare_sample() there's a
WARN_ON_ONCE() in the PERF_SAMPLE_RAW branch that should trigger with
this.

> >
> > And as with any ABI extension, it should come with useful userspace to
> > make use of it.
>
> There are already scripts available to use it, see Feng's patchkit.

That's a whole other patchkit, meaning this doesn't belong here.

I never can seem to figure out how to use the scripts mess :/ acme, is
there anything we could do to make that stuff usable? There's a ton of
crap under scripts/ but I don't even know how to get that stuff to run.

What's more, all that nonsense is in weird languages I don't do either,
making it less useful than usual.

In short, I don't consider script/ to be proper userspace since its
bloody useless.