Right. The default however is currently to exclude_guest = 1, which is the 
problem. PAPI did not seem to rectify that setting…

One problem I had digging around was that libpfm always includes it’s version 
of the struct… When I looked at what the actual kernel wanted (it’s own 
linux/perf_event.h) those fields aren’t even present. The issue here is that 
since libpfm sees a VMX flag in the CPUINFO it always sets this bit.

Phil


> On Jan 4, 2016, at 2:23 PM, Vince Weaver <vincent.wea...@maine.edu> wrote:
> 
> On Mon, 4 Jan 2016, Philip Mucci wrote:
> 
>> Greetings and Happy New Year Stephane,
>> Ok, thanks to your tips, and digging through Vince’s perf_event_tests codes,
>> I tracked down this bug - it’s the exclude_guest = 1 flag. The systems I’m
>> running on are paranoid level 2. Here’s the GDB log… What’s the right way to
>> fix this? I have a patched library working for me, but it’s not generalized.
>> Let me know and I’ll send you a patch.
> 
> This is the perf_event "ABI compatability" stuff that causes lots of 
> trouble if you want to use more recent features (such as exclude_guest).
> 
> There's really no good way to find out what version of the ABI the kernel 
> expects.  They have the size field to detect extra additions to the end of 
> the attr (but that has issues due to a buggy implementation) but there's 
> really no way at all to detect how big the kernel expects the big "union" 
> in the middle to be (where the exclude_guest flags are).
> 
> PAPI ran into this a while ago and I think the "solution" was to always 
> force exclude_guest off.
> 
> Vince


------------------------------------------------------------------------------
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to