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: [email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel