Slashdot Log In
Hardware Virtualization Slower Than Software?
Posted by
Hemos
on Sun Aug 13, 2006 03:17 AM
from the the-jury-is-still-out dept.
from the the-jury-is-still-out dept.
Jim Buzbee writes "Those you keeping up with the latest virtualization techniques being offered by both Intel and AMD will be interested in a new white paper by VMWare that comes to the surprising conclusion that hardware-assisted x86 virtualization oftentimes fails to outperform software-assisted virtualization. My reading of the paper says that this counterintuitive result is often due to the fact that hardware-assisted virtualization relies on expensive traps to catch privileged instructions while software-assisted virtualization uses inexpensive software substitutions. One example given is compilation of a Linux kernel under a virtualized Linux OS. Native wall-clock time: 265 seconds. Software-assisted virtualization: 393 seconds. Hardware-assisted virtualization: 484 seconds. Ouch. It sounds to me like a hybrid approach may be the best answer to the virtualization problem.
"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Sponsored by VMWare.. what do you expect? (Score:5, Insightful)
Re:Sponsored by VMWare.. what do you expect? (Score:3, Insightful)
Even so, they may be at least partially right.
Besides, if a hybrid approach is necessary, VMWare will need to adjust as well. Or am I missing something?
Re:Sponsored by VMWare.. what do you expect? (Score:5, Informative)
But Vmware's agitation is understandable. They're about to lose it all to an open source project. Where have I seen this before?
Parent
Re:Sponsored by VMWare.. what do you expect? (Score:5, Informative)
Note that Xen's original hypervisor implementation *is* a software solution -- it relies on rewriting the guest operating system kernel so that the kind of hardware traps that VMware are talking about here are unnecessary. Note that it worked flawlessly before the virtualisation technology (eg. Intel VT) that VMware is testing was avialable.
Parent
This HAS happened before - with Stacker (Score:3, Informative)
This won't be the first time software beats hardware.
The original Stacker product was a combination of a hardware card and software. Think of the hardware card as an accelerator for doing the comression/decompression.
The hardware was faster on the oldest machines, but on anything above a 286/12 (I had a 286/20 at the time), or almost any 386, it ran faster without the hardware card. And on every 486, the card was useless.
So, while you may want to "consider the source" of this news, this is only one f
Re:Sponsored by VMWare.. what do you expect? (Score:2)
Citrix?
Not an open source product and not lost it to an open source product, but they made a product that has been largely made superflouos because MS built it right into the OS.
Re:Sponsored by VMWare.. what do you expect? (Score:2, Interesting)
I'll let you in on a secret: if you consider all costs, and return on investment, using VMware is a competitive advantage over using Xen.
Re:Sponsored by VMWare.. what do you expect? (Score:3, Insightful)
It's like Apple's claim that their Intel jobbies are 5x faster - a bit silly and very, very specific...
And yes, VMWare are hardly likely to mention that Xen-style virtualisation is going to be better now, are they?
Re:Sponsored by VMWare.. what do you expect? (Score:5, Insightful)
VMware's paper is a typical research paper, published at a peer-reviewed conference. This means that they have used the scientific method. The chances are 99.9999% that you will easily reproduce their results, even if changing the benchmarks.
I, on the other hand, am smart enough to see that they are stating the obvious. If you read the Intel VT spec, you'll see that Intel does nothing for page table virtualization, nor anything for device virtualization. Both are extremely expensive, and besides sti/cli, are the prime candidates for hardware assists. Intel will likely solve this performance issue in future revs, but right now, VT isn't fast enough.
Hmmm, virtualisation? Do you happen to work on Xen?
Parent
Re:Sponsored by VMWare.. what do you expect? (Score:2)
Re:Sponsored by VMWare.. what do you expect? (Score:3, Insightful)
And by the way... yes... device virtualization is still not there, but your page tables claim is bullshit. If you read the VT (and the SVM) docs, you would realize that you can implement shadow page tables RIGHT NOW. The hardware assists are there.
Re:Sponsored by VMWare.. what do you expect? (Score:5, Informative)
Disclaimer: I work for VMware.
Parent
I designed h/w virtualization (Score:3, Interesting)
Yes, AMD Pacifica seems to be far better (Score:4, Interesting)
Apparently, yes, and by a good margin.
There are several documents and articles out there which point out VT's problems and how Pacifica is quite dramatically better. Here's an excerpt from "AMD Pacifica turns the nested tables" [theinq.net], part 3 of an informative series of articles:
This should allow an otherwise identical VMM to do more things in hardware and have lower overhead than VT. AMD appears to have used the added capability wisely, giving them a faster and as far as memory goes, more secure virtualisation platform."
So, it looks like AMD are ahead on hardware virtualization at the moment.
If I read it correctly, this is because Intel's VT actually requires a lot of software intervention, so it's not actually a very strong hardware solution at all.
Parent
Re:Sponsored by VMWare.. what do you expect? (Score:5, Informative)
As far as the results there is nothing surprising here. This has happened before. Fault driven emulation of 80287 was nearly 50%+ slower than compiled in emulation. There were quite a few other examples x86 which all revolve around the fact that the x86 fault handling in protected mode is hideously slow. Last time I have had a look at it in asm was in the 386 days and the numbers were in the 300 clock cycle range for most faults (assuming no wait on memory accesses). While 486 and Pentium improved the things a bit in a few places, the overall order remains the same (or even worse, due to memory waits). Anything that relies on faults in x86 is bound to be hideously slow.
Not that this matters, as none of the VM technologies is particularly caring about resources. They are deployed because there is an excess resource in the first place.
Parent
Re:Sponsored by VMWare.. what do you expect? (Score:2)
Nevermind who sponsored the study... (Score:2)
Re:Nevermind who sponsored the study... (Score:2)
Hybrid? Good + Bad = Better? (Score:2, Insightful)
* - I imagine in real life it's not a 1:1 ratio, but for the sake of argument, work with me.
Re:Hybrid? Good + Bad = Better? (Score:3, Insightful)
I suppose there are certain things hardware virtualisation does better.
The trick is, I'd guess, to find out which works better in which circumstances.
You see that people suspect this white paper because of its origin; they are right in doing so at least because only one type of test has been performed; surely not all computing tasks perform the same way as a kernel compile.
This suggests that VMWare have found the example which supports their claims the best; the question is, of course, whether this is th
Re:Hybrid? Good + Bad = Better? (Score:2)
For example, say you have a boat powered by 393 horsepower engine and a 484 horsepower engine. If you run them both at the same time, the net power is not going to be 439hp.
Software+hardware won't add in nearly the same way, but I wouldn't be surprised if a hybrid approach was %50 faster than either method alone.
Re:Hybrid? Good + Bad = Better? (Score:3, Insightful)
The correct conclusion is more limited (Score:5, Insightful)
The correct conclusion is not that virtualization is better done entirely in software, but that current hardware assists to virtualization are badly designed. As the complete article points out, the hardware features need to be designed to support the software - not in isolation.
It reminds me of an influential paper in the RISC/CISC debate, about 20 years ago. Somebody wrote a C compiler for the VAX that output only a RISC-like subset of the VAX instruction set. The generated code ran faster than the output of the standard VAX compiler, which used the whole (CISC) VAX instruction set. The naive conclusion was that complex instructions are useless. The correct conclusion was that the original VAX compiler was a pile of manure.
The similarity of the two situations is that it's a mistake to draw a general conclusion about the relative merits of two technologies, based on just one example of each. You have to consider the quality of the implementations - how the technology has been used.
Re:The correct conclusion is more limited (Score:2)
Re:The correct conclusion is more limited (Score:2)
Re:The correct conclusion is more limited (Score:5, Interesting)
It also had a few other advantages. Since you were adding virtual instructions, they all completed atomically (you can't pre-empt a process in the middle of an instruction). This meant you could put things like thread locking instructions in the PALCode and not require any intervention from the OS to run them. The VMS PALCode, for example, had a series of instructions for appending numbers to queues. These could be used to implement very fast message passing between threads (process some data, store it somewhere, then atomically write the address to the end of a queue) with no need to perform a system call (which meant no saving and loading of the CPU state, just jumping cheaply into a mode that could access a few more registers).
Parent
Re:The correct conclusion is more limited (Score:3, Funny)
Their entry models (10k US$) are slow as shit though. Can't say anything about the more expensive machine, but anything that requires around 12 hours to upgrade it's operating system can't be trusted.
Re:The correct conclusion is more limited (Score:3, Interesting)
Note that the 'naive conclusion' and the 'correct conclusion' are not contradictory: I remember an article recently where it was shown that the Alpha had three times the power of a correspondig VAX, which made nicely the point that CISC is shit.
Now as Intel has shown, given enough efforts and money even x86 the poorest CISC ISA ever (VAX ISA was much nicer than x
I smell a straw man... (Score:2, Interesting)
Perhaps the intended conclusion was that it was feasible to write an efficient compiler using only a small, intelligently chosen with compiler optimization in mind, subset of the instruction set. Perhaps the fact that the original compiler was (as you assert) "a pile of manure" was not unconnected to the fact that it tried to achieve speed by exploiting the entir
hardware v/s software (Score:3, Insightful)
Sure, the instructions may be hardcoded, coming out of ROM, or whatever, but in the end its instrructions that tell the hardware what to do. And those instructions are called "software", no matter how the vendor tries to spin it. And if the solutions performs badly, it is because the software is designed badly. Period.
Re:hardware v/s software (Score:2)
No not really (Score:3, Informative)
Re:No not really (Score:4, Interesting)
I am not willing, based on a single datapoint, to make any conclusions. That's tanget to my point anyhow, my point was that doing something in hardware and software are quite different.
Parent
Re:No not really (Score:3, Funny)
"It sounds to me like a hybrid approach may be th" (Score:2)
As so many times and so many cases before has it proven to be the optimal solution. What gives ? Good is that we have all these alternatives, and every vm company will try to evaluate, then optimize, which will lead to better performing software VMs, and because hw is slower to catch up, probably software VMs will be better for a while.
wrong (Score:4, Insightful)
It may or may not be faster eventually, but that doesn't matter. What matters is that small changes in the hardware make it possible to stop having to depend on costly, proprietary, and complex software--like that sold by VMware.
Re:wrong (Score:2)
Not to say that you're wrong or that hardware should be free-as-in-freedom, but the irony was to great to resist.
Not just the CPU (Score:5, Interesting)
I am 100% in favor of cheap and open solutions. But I don't agree that this will soon be the case for virtualization. VMWare and the few other major vendors do a lot more than software virtualization of a CPU (which is all TFA was talking about). To have a complete virtualization solution, you need to also virtualize the rest of the hardware: storage, graphics, input/output, etc. In particular graphics is a serious issue (attaining hardware acceleration in a virtual environment safely), which from last I heard VMWare were working hard on.
Furthermore, Virtualization complements well with software that can migrate VMs (based on load or failure), and so forth. So, even if hardware CPU virtualization is to be desired - I agree with you on that - that won't suddenly make virtualization as a whole a simple task.
Parent
Re:Not just the CPU (Score:2)
Actually, the people who have made the most headway are Microsoft. The Vista driver model is designed for support for virtualisation in mind. This means that the OS has access to video driver commands for things like saving and restoring GPU state. As far as I know, other operating systems currently lack this; Linux has a problem even switchi
Use Paravirtualization (Score:4, Insightful)
g
Re:Use Paravirtualization (Score:2)
The whole point of virtualization is so you can run your favoriate OS most of the time, and only switch over to Windows when you want to run games, isn't it?
Well, I suppose if choose to stay in the Windows world most of the time, the whole point of VM is to try to keep malware off your computer... But either way, you're not getting a FLOSS paravirtualized Windows kernel any time soon.
Re: Use Paravirtualization (Score:2)
Your windows desktop is not the whole point.
g
Re: Use Paravirtualization (Score:3, Insightful)
Look to IBM (Score:3, Informative)
Re:Look to IBM (Score:4, Interesting)
Just like what is happening now, they added specific support to the hardware to make VM perform better.
This all happened before the development of today's architectures, but in the early days of microcomputing, IBM had the position that Microsoft has today: they were the big company that had 90% of the market, and in the eyes of the newcomers all they did was by definition the wrong thing. So nobody would bother to look at 360 mainframes, VM and how it was done before designing their own processor.
(this would be similar to telling a Linux geek to look at how certain problems are solved in Windows... it is Windows, it is Microsoft, so it has to be the wrong solution)
Parent
I think that's a little innacurate (Score:4, Insightful)
It's no supprise that large, extremely expensive computers get technology before home computers do. You give me $20 million to build something with, I can make it do a lot. You give me $2000, it's going to have to be scaled way back, even with economies of scale.
You see the same thing with 3D graphics. Most, perhaps even all, the features that come to 3D cards were done on high end visualizaiton systems first. It's not that the 3D companies didn't think of them, it's that they couldn't do it. The orignal Voodoo card wasn't amazing in that it did 3D, it was much more limited than other thigns on the market. It was amazing in that it did it at a price you could afford for a home system. 3dfx would have loved to have a hardware T&L engine, AA features, procedural textures, etc, there just wasn't the silicon budget for it. It's only with more developments that this kind of thing has become feasable.
So I really doubt Intel didn't do something like VT because they thought IBM was wrong on the 360, I think rather they didn't do it because it wasn't feasable or marketable on desktop chips.
Parent
Re:Look to IBM (Score:3, Interesting)
Parallels on Mac OS? (Score:3, Interesting)
Parallels on OS X switches between software and hardware virtualization and using hardware virtualization its about 97% the speed all around of native hardware (consider that virtualization on current Yonah CPUs is equal to one core only). Software virt on Parallels is much slower - on par with running Windows Virtual PC on the same box using Windows XP (not Mac Virtual PC).
Re:Bias? (Score:4, Insightful)
Parent
Re:This is why hypervisors rule (Score:2, Insightful)
I should be sleeping.
Rich