Tsafack Chetsa Ghislain Landry
2013-May-06 10:52 UTC
Reading hardware performance events in xen dom0
Greetings,
Sorry for disturbing, I have just installed Xen on my system (kernel version
2.6.32-5-xen-amd64) and I would like to read hardware events in dom0, I have a
program which usually do that in non-Xen kernels (see beneath).
void open_perf(struct perf_event_attr* attr) {
static int current=0;
int cpu;
for(cpu=0; cpu<NBCORE; cpu++) {
perfctr[current+cpu]=sys_perf_event_open(attr, -1, cpu, -1, 0);
if(perfctr[current+cpu] <0) {
printf("open : %d (%d et %d)\n", perfctr[current+cpu],
attr->config, current+cpu);
exit(1);
}
}
current+=NBCORE;
}
The problem is that the system call "sys_perf_event_open"
systematically returns -1
I was wondering whether anyone has experienced the same issue and how I get rid
of that.
I tried using perf, but I guess the same thing happens:
here is an example:
Performance counter stats for ''mpirun -np 2 ./ep.A'':
55075.066063 task-clock-msecs # 1.986 CPUs
282 context-switches # 0.000 M/sec
4 CPU-migrations # 0.000 M/sec
2330 page-faults # 0.000 M/sec
<not counted> cycles
<not counted> instructions
<not counted> cache-references
<not counted> cache-misses
27.735049988 seconds time elapsed
--
Landry
_______________________________________________
Xen-users mailing list
Xen-users@lists.xen.org
http://lists.xen.org/xen-users
On Mon, May 06, 2013 at 11:52:54AM +0100, Tsafack Chetsa Ghislain Landry wrote:> Greetings, > > Sorry for disturbing, I have just installed Xen on my system (kernel version 2.6.32-5-xen-amd64) and I would like to read hardware events in dom0, I have a program which usually do that in non-Xen kernels (see beneath). > > void open_perf(struct perf_event_attr* attr) { > static int current=0; > int cpu; > for(cpu=0; cpu<NBCORE; cpu++) { > perfctr[current+cpu]=sys_perf_event_open(attr, -1, cpu, -1, 0); > > if(perfctr[current+cpu] <0) { > printf("open : %d (%d et %d)\n", perfctr[current+cpu], attr->config, current+cpu); > exit(1); > } > } > current+=NBCORE; > } > > The problem is that the system call "sys_perf_event_open" systematically returns -1 > > I was wondering whether anyone has experienced the same issue and how I get rid of that. > > I tried using perf, but I guess the same thing happens: > here is an example: > > Performance counter stats for ''mpirun -np 2 ./ep.A'': > > 55075.066063 task-clock-msecs # 1.986 CPUs > 282 context-switches # 0.000 M/sec > 4 CPU-migrations # 0.000 M/sec > 2330 page-faults # 0.000 M/sec > <not counted> cycles > <not counted> instructions > <not counted> cache-references > <not counted> cache-misses > > 27.735049988 seconds time elapsed >AFAICT this is not yet supported. Boris@oracle seems to be working on getting perf to profile Dom0 and Xen. Wei.> -- > Landry> _______________________________________________ > Xen-users mailing list > Xen-users@lists.xen.org > http://lists.xen.org/xen-users
Am Montag 06 Mai 2013, 12:07:44 schrieb Wei Liu:> On Mon, May 06, 2013 at 11:52:54AM +0100, Tsafack Chetsa Ghislain Landry wrote: > > Greetings, > > > > Sorry for disturbing, I have just installed Xen on my system (kernel version 2.6.32-5-xen-amd64) and I would like to read hardware events in dom0, I have a program which usually do that in non-Xen kernels (see beneath). > > > > void open_perf(struct perf_event_attr* attr) { > > static int current=0; > > int cpu; > > for(cpu=0; cpu<NBCORE; cpu++) { > > perfctr[current+cpu]=sys_perf_event_open(attr, -1, cpu, -1, 0); > > > > if(perfctr[current+cpu] <0) { > > printf("open : %d (%d et %d)\n", perfctr[current+cpu], attr->config, current+cpu); > > exit(1); > > } > > } > > current+=NBCORE; > > } > > > > The problem is that the system call "sys_perf_event_open" systematically returns -1 > > > > I was wondering whether anyone has experienced the same issue and how I get rid of that. > > > > I tried using perf, but I guess the same thing happens: > > here is an example: > > > > Performance counter stats for ''mpirun -np 2 ./ep.A'': > > > > 55075.066063 task-clock-msecs # 1.986 CPUs > > 282 context-switches # 0.000 M/sec > > 4 CPU-migrations # 0.000 M/sec > > 2330 page-faults # 0.000 M/sec > > <not counted> cycles > > <not counted> instructions > > <not counted> cache-references > > <not counted> cache-misses > > > > 27.735049988 seconds time elapsed > > > > AFAICT this is not yet supported. Boris@oracle seems to be working on > getting perf to profile Dom0 and Xen.Only HVM domains are supported (when specifying the vpmu flag). Dietmar. -- Company details: http://ts.fujitsu.com/imprint.html