Hi,

I think I've figured out where the problem occurs. 

The latest version of the Xeon Phi kernel (linux-2.6.38+mpss3.2) does not have 
the exclude_guest flag in struct perf_event_attr. The struct perf_event_attr of 
libpfm defines the exclude_guest and sets it by default to 1, effectively 
changing the __reserved_1 field of the linux version of perf_event_attr (seen 
by the kernel). 

At the line 5740 in kernel/perf_event.c there is this  check

    if (attr->__reserved_1)
        return -EINVAL;

which generates the error.

Aram

-----Original Message-----
From: Aram Santogidis 
Sent: 08 April 2014 15:27
To: perfmon2-devel@lists.sourceforge.net
Subject: Re: [perfmon2] [perfmon2:bugs] #5 exclude_guest field setting issue on 
Intel Xeon Phi

Hi,

I encountered the same issue and concluded to the same conclusion with libpfm 
4.5.0. Setting "attr.exclude_guest = 0" solves the "Invalid argument" problem. 
The KNC card that I'm using runs kernel version 2.6.38.8+mpss3.2. 

I'm trying to figure  this out without success so far. Can you give me an 
advice?

Thanks, Aram

------------------------------
Marie Curie Fellow, CERN
ICE-DIP project

------------------------------------------------------------------------------------------
Hi,


On which kernel is this running on. I am trying to locate the difference with 
Intel X86 code path here. Libpfm4 does set exclude_guest by default for let's 
say SandyBridge and it does not cause a problem. So somewhere in the KNC code 
path, this field value is flagged as bad.


On Mon, Jul 1, 2013 at 11:12 AM, Jean-Philippe HALIMI <jphalimi@...> wrote:
> ________________________________
>
> [bugs:#5] exclude_guest field setting issue on Intel Xeon Phi
>
> Status: open
> Created: Mon Jul 01, 2013 09:12 AM UTC by Jean-Philippe HALIMI Last 
> Updated: Mon Jul 01, 2013 09:12 AM UTC
> Owner: nobody
>
> As a driver for the Linux perf API, libpfm provides it with a 
> perf_event_attr structure. Unfortunately, the structure available in 
> the include/perfmon/perf_event.h file is not the same as the one in 
> the linux header file (typically located in /usr/include/linux/perf_event.h).
>
> As a matter of fact, on Intel Xeon Phi, the perf_event_attr returned 
> by pfm_get_os_event_encoding is considered as an invalid argument in 
> the perf_event_open callback, because some fields are wrongly set. I 
> found out that setting the libpfm4.4's perf_event.h 
> perf_event_attr.exclude_guest attribute to 0 before calling 
> perf_event_open solves the problem. As it is presented as a reserved 
> bit in the linux's structure counterparts, I consider it as a hack and 
> therefore recommend to do something in order to fix it.
>
> ________________________________
>
> Sent from sourceforge.net because you indicated interest in 
> https://sourceforge.net/p/perfmon2/bugs/5/
>
> To unsubscribe from further messages, please visit 
> https://sourceforge.net/auth/subscriptions/


------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to