Thread (39 messages) 39 messages, 5 authors, 2011-02-21

Re: [PATCH 1/3] perf events: fix WARN_ON_ONCE for 64-bit raw data, SW events

flat view

From: David Ahern <hidden>
Date: 2011-02-18 15:28:28
Also in: lkml


On 02/18/11 07:55, Peter Zijlstra wrote:
quoted
Another gotcha is in perf_output_sample there is:
            struct {
                u32 size;
                u32 data;
            } raw = {
                .size = sizeof(u32),
                .data = 0,
            };

While that meets the 8-byte stride I was concerned that changing the
size field to u64 breaks ABI.
It would.

No, what you need to do is provide data that is sized such that it
matches the 8b stride adding padding where needed.
I want to push a 64-bit counter to userspace. By definition it meets the
8-byte stride. Now how do I get sizeof(size field) + sizeof(data) to
meet an 8-byte stride? I can't when sizeof(size field) = 4. Ok, I can
pad the data with 4 bytes, but then I an api to tell the user to strip
the 4-byte pad. Seems like an odd way to go.

Why is an 8-byte stride preferred over a 4-bytes?

David
Anyway, I don't think you need RAW at all.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help