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

[Xen-devel] RE: [Xen-users] Does vt-x itself have perf. impact on Hypervisor w/o considering HVM?


> -----Original Message-----
> From: Liang Yang [mailto:multisyncfe991@xxxxxxxxxxx] 
> Sent: 23 January 2007 16:15
> To: Petersson, Mats; Xen devel list; xen-users@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Xen-users] Does vt-x itself have perf. impact 
> on Hypervisor w/o considering HVM?
> Without VT-x support, binary translation has to be used to make those 
> non-virtualizable instructions throw exception. With VT-x 
> support, no binary 
> translation is needed. So you mean, binary translation could 
> be implemented 
> as efficient as they are done in hardware?

Not at all - I'm saying that if you're not using VT-x, then VT-x has no
performance impact to your tests, which is what you originally asked. Or
at least, that's how I interpreted:
"both domain0 and Para-Virtualized Guest Domain (HVM domain is not
considered)" in your original post. 

Xen doesn't use binary translation, it uses para-virtualization, which
is another way to say "source-code of the operating systme being
modified to support virtualization". 

Binary translation or hardware support is needed if you're using an
operating system where it is unpractical to do para-virtualization (for
example, source-code is not publicly available (say Windows), or the
user-base isn't big enough to sustain a para-virtualization effort (say
Linux kernel 2.4.x)).

Whether binary translation or hardware is more efficient will depend on:
1. Implementation of the binary translation and hardware. 
2. What application and OS is being run on the system. 

It is by no means sure that Binary translation is either faster or
slower than hardware implementations of virtualization. There are too
many other factors that affect the situation to say for sure - one case
may be faster for binary translation (because the type of operations
suit binary translation), whilst another is slower.

For most common cases, Para-virtualization should be able to be overall
faster than both, because there are possibilities to bunch together
several operations that cause a hypervisor interaction, and those can be
"pacakged together" rahter than each event needing it's own separate
hypervisor interaction. Of course, REALLLY clever binary translation may
be able to detect a loop writing to the page-table and translate that
into a block-call of "translate these 100 page-writes", rather than
"for(...) do { translate one page write }" as the obvious solution would
be. In hardware, there is no choice but to intercept each and every
operation on it's own, so it's most likely the slowest operation, unless
there's some way to avoid the hypervisor being called overall (there are
some such cases too, and again, it depends on the exact circumstances of
the application + OS that is run as a guest). 

There's also more possibilities to add things to the hardware to support
future enhancements of the hardware, which just plain isn't going to
happen in the software solution. One such feature is nested paging,
which allows the guest-page-table operations to avoid being intercepted
(instead of an intercept and a whole bunch of code to perform the
page-table write, the processor does a second page-table access of the
"host-page-table" which translates the guest physical address into
machine physical address). 

> Thanks,
> Liang
> ----- Original Message ----- 
> From: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
> To: "Liang Yang" <multisyncfe991@xxxxxxxxxxx>; "Xen devel list" 
> <xen-devel@xxxxxxxxxxxxxxxxxxx>; <xen-users@xxxxxxxxxxxxxxxxxxx>
> Sent: Tuesday, January 23, 2007 3:05 AM
> Subject: RE: [Xen-users] Does vt-x itself have perf. impact 
> on Hypervisor 
> w/o considering HVM?
> > -----Original Message-----
> > From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
> > [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Liang Yang
> > Sent: 22 January 2007 18:33
> > To: Xen devel list; xen-users@xxxxxxxxxxxxxxxxxxx
> > Subject: [Xen-users] Does vt-x itself have perf. impact on
> > Hypervisor w/o considering HVM?
> >
> > Hello,
> >
> > Suppose I have two different kinds of CPUs which have exactly
> > the same
> > configuration except one supports VT-X while the other does
> > not. If I want
> > to test the I/O performance (or other perf. testing which is not
> > particularly related to I/O) of the both domain0 and
> > Para-Virtualized Guest
> > Domain (HVM domain is not considered), shall I expect to 
> get the same
> > performance results on these two CPUs?
> Assuming ALL other aspects are the same, when you're not using HVM,
> there should be absolutely zero impact from it (aside from it 
> using up a
> few kilobytes of memory, to be precise, HVM (including both 
> VMX and SVM)
> takes up 129459 bytes when not used - more memory is allocated
> dynamically when it's being used for obvious reasons. For modern
> systems, that's so small that it doesn't matter).
> --
> Mats
> >
> > Thanks,
> >
> > Liang
> >
> >
> > _______________________________________________
> > Xen-users mailing list
> > Xen-users@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-users
> >
> >
> >

Xen-devel mailing list



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