[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Question about running a program(Intel PCM) in ring 0 on Xen


I'm a PhD student, working on real time system. 

[My goal]
I want to measure the cache hit/miss rate of each guest domain in Xen. I may also want to measure some other events, say memory access rate, for each program in each guest domain in Xen.

My machine's CPU uses intel IvyBridge architecture. 

[The problem I'm encountering]
I tried intel's Performance Counter Monitor (PCM) in Linux on bare machine to get the machine's cache access rate for each level of cache, it works very well. 

However, when I want to use the PCM in Xen and run it in dom0, it cannot work. I think the PCM needs to run in ring 0 to read/write the MSR. Because dom0 is running in ring 1, so PCM running in dom0 cannot work. 

So my question is:
How can I run a program (say PCM) in ring 0 on Xen? 

What's in my mind is:
Writing a hypercall to call the PCM in Xen's kernel space, then the PCM will run in ring 0? 
But the problem I'm concerned is that some of the PCM's instruction, say printf(), may not be able to run in kernel space? 

Do you have any suggestion on running PCM or other performance monitor program in ring 0 on Xen? 

What I tried before:
I wrote a hypercall to read and write the MSR and record the cache hit/miss event for each level of cache, using Intel's performance counter. 
It worked on my machine. But it's not portable to other machines since the event number may be different. That's why I think running PCM or other existing performance monitor program on Xen will be a better idea.

Thank you very much for your time and help in this question!



Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.