* performance specs on VT-x vmenter/exit
@ 2007-12-06 18:09 Dan
[not found] ` <fe801d6f0712061009r7b6c64b5qa1ad17722036301b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 6+ messages in thread
From: Dan @ 2007-12-06 18:09 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
[-- Attachment #1.1: Type: text/plain, Size: 845 bytes --]
Greetings Honorable KVM Devs!
I am doing research on the performance characteristics of the Intel VMX
instructions, specifically with respect to KVM. I need to count the cycles
for a VMENTER and VMEXIT instruction under various conditions. (But getting
it to work at all would be cool :)
So the idea is to drop the cycle count in a register from the VMM, force a
VMENTER, drop the count in a different register, and force a VMEXIT. Then
get a last count and do appropriate adding/subtracting.
I'm working with a 2.6.22.6 vanilla kernel on an Core2Duo with KVM-54.
Questions:
Is there a better way to get these numbers?
If not, where in the KVM source should I aim to put these instructions
(file/line number/general area)?
Any tips on forcing a vmexit out of the guest immediately after the count?
Thank you so much for your time.
:dan
[-- Attachment #1.2: Type: text/html, Size: 946 bytes --]
[-- Attachment #2: Type: text/plain, Size: 309 bytes --]
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
[-- Attachment #3: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply [flat|nested] 6+ messages in thread[parent not found: <fe801d6f0712061009r7b6c64b5qa1ad17722036301b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: performance specs on VT-x vmenter/exit [not found] ` <fe801d6f0712061009r7b6c64b5qa1ad17722036301b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2007-12-06 18:36 ` Avi Kivity [not found] ` <47584142.10600-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Avi Kivity @ 2007-12-06 18:36 UTC (permalink / raw) To: Dan; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Dan wrote: > Greetings Honorable KVM Devs! > > I am doing research on the performance characteristics of the Intel > VMX instructions, specifically with respect to KVM. I need to count > the cycles for a VMENTER and VMEXIT instruction under various > conditions. (But getting it to work at all would be cool :) > > So the idea is to drop the cycle count in a register from the VMM, > force a VMENTER, drop the count in a different register, and force a > VMEXIT. Then get a last count and do appropriate adding/subtracting. > I'm working with a 2.6.22.6 <http://2.6.22.6> vanilla kernel on an > Core2Duo with KVM-54. > > Questions: > Is there a better way to get these numbers? > If not, where in the KVM source should I aim to put these > instructions (file/line number/general area)? > Any tips on forcing a vmexit out of the guest immediately after the > count? > > Thank you so much for your time. > :dan Have a look at user/test/x86/vmexit.c, which does exactly that. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <47584142.10600-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: performance specs on VT-x vmenter/exit [not found] ` <47584142.10600-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-12-06 18:49 ` Anthony Liguori [not found] ` <4758442B.8060401-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Anthony Liguori @ 2007-12-06 18:49 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Dan Avi Kivity wrote: > Dan wrote: > >> Greetings Honorable KVM Devs! >> >> I am doing research on the performance characteristics of the Intel >> VMX instructions, specifically with respect to KVM. I need to count >> the cycles for a VMENTER and VMEXIT instruction under various >> conditions. (But getting it to work at all would be cool :) >> >> So the idea is to drop the cycle count in a register from the VMM, >> force a VMENTER, drop the count in a different register, and force a >> VMEXIT. Then get a last count and do appropriate adding/subtracting. >> I'm working with a 2.6.22.6 <http://2.6.22.6> vanilla kernel on an >> Core2Duo with KVM-54. >> >> Questions: >> Is there a better way to get these numbers? >> If not, where in the KVM source should I aim to put these >> instructions (file/line number/general area)? >> Any tips on forcing a vmexit out of the guest immediately after the >> count? >> >> Thank you so much for your time. >> :dan >> > > > Have a look at user/test/x86/vmexit.c, which does exactly that. > > That only gives you the combined count of a vmenter and vmexit. If you want to measure the individual counts of a vmenter and a vmexit, the easiest thing to do is make sure the tsc_offset is always zero, and has the host and guest cooperate. The host stashes away the tsc before entering the guest, the guest immediately would take the tsc and stash it in a register and then immediately enter generate an exit. The host would then immediately take the tsc and stash it away. You now have three readings and can use them to identify the cost of vmenter and vmexit. Regards, Anthony Liguori ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <4758442B.8060401-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: performance specs on VT-x vmenter/exit [not found] ` <4758442B.8060401-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-12-06 19:06 ` Avi Kivity [not found] ` <47584832.9010708-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Avi Kivity @ 2007-12-06 19:06 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Dan Anthony Liguori wrote: >> >> >> Have a look at user/test/x86/vmexit.c, which does exactly that. >> >> > > That only gives you the combined count of a vmenter and vmexit. Right; furthermore it measures kvm overhead and not just instruction latency. -- Any sufficiently difficult bug is indistinguishable from a feature. ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <47584832.9010708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: performance specs on VT-x vmenter/exit [not found] ` <47584832.9010708-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-12-06 19:56 ` Anthony Liguori [not found] ` <475853E0.7080005-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Anthony Liguori @ 2007-12-06 19:56 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Dan Avi Kivity wrote: > Anthony Liguori wrote: >>> >>> >>> Have a look at user/test/x86/vmexit.c, which does exactly that. >>> >>> >> >> That only gives you the combined count of a vmenter and vmexit. > > Right; furthermore it measures kvm overhead and not just instruction > latency. True. Also, I don't know what Dan is looking to measure, but the cost of vmexits will varying depending on the reason for exit. vmexit.c uses cpuid() which I suspect is slower than vmexit or pio but faster than pf. It would be interesting to measure the individual exit reasons. Regards, Anthony Liguori ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <475853E0.7080005-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>]
* Re: performance specs on VT-x vmenter/exit [not found] ` <475853E0.7080005-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> @ 2007-12-06 21:17 ` Dan 0 siblings, 0 replies; 6+ messages in thread From: Dan @ 2007-12-06 21:17 UTC (permalink / raw) To: Anthony Liguori; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Avi Kivity [-- Attachment #1.1: Type: text/plain, Size: 1183 bytes --] Thanks for the lightning-fast response, guys. I'll play around with vmexit.c and let some of this sink in. I was hoping to get a clean count of ticks/vm[enter/exit] without the kvm latency, and I thought putting in into the code in the kvm code in the kernel source would accomplish something like that. Getting counts per exit reason would be really neat too. Thanks again, I'm sure I'll come back with more precise questions later :D :dan On Dec 6, 2007 2:56 PM, Anthony Liguori <anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> wrote: > Avi Kivity wrote: > > Anthony Liguori wrote: > >>> > >>> > >>> Have a look at user/test/x86/vmexit.c, which does exactly that. > >>> > >>> > >> > >> That only gives you the combined count of a vmenter and vmexit. > > > > Right; furthermore it measures kvm overhead and not just instruction > > latency. > > True. Also, I don't know what Dan is looking to measure, but the cost > of vmexits will varying depending on the reason for exit. vmexit.c uses > cpuid() which I suspect is slower than vmexit or pio but faster than > pf. It would be interesting to measure the individual exit reasons. > > Regards, > > Anthony Liguori > > > [-- Attachment #1.2: Type: text/html, Size: 1667 bytes --] [-- Attachment #2: Type: text/plain, Size: 277 bytes --] ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php [-- Attachment #3: Type: text/plain, Size: 186 bytes --] _______________________________________________ kvm-devel mailing list kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/kvm-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-12-06 21:17 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-06 18:09 performance specs on VT-x vmenter/exit Dan
[not found] ` <fe801d6f0712061009r7b6c64b5qa1ad17722036301b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-12-06 18:36 ` Avi Kivity
[not found] ` <47584142.10600-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-06 18:49 ` Anthony Liguori
[not found] ` <4758442B.8060401-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-12-06 19:06 ` Avi Kivity
[not found] ` <47584832.9010708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-06 19:56 ` Anthony Liguori
[not found] ` <475853E0.7080005-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-12-06 21:17 ` Dan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox