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