Linked by Rahul on Sun 9th Nov 2008 10:20 UTC
Thread beginning with comment 336818
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
So, let me get this straight - you've got a kernel running under one "quad core virtual machine" that was told that each of the virtual CPUs support certain features (e.g. SSE4).
Then you migrate this virtual machine to an old 80486 box, and suddenly 3 cores and all the modern CPU features are gone, and the kernel and all the applications that were relying on these features just keep running?
If you have an app that requires some special instruction set like SSE4 it wouldn't run on the 486 in the first place.
Hi,
If you have an app that requires some special instruction set like SSE4 it wouldn't run on the 486 in the first place.
I'm thinking you missed the point entirely. All CPUs have a variety of features. Some of those features are vendor specific (e.g. Intel's SpeedStep, AMD's Cool'n'Quiet, machine check, performance monitoring, certain debugging features, etc) and some are just "new" (e.g. SSE5, x2APIC). For VM migration to work you'd need to tell the virtual machine that none of the new CPU features and none of the vendor specific features are present.
Then there's certain optimizations (page coloring, NUMA, instruction selection, etc) that tune the software/kernel to the CPU. Kiss them goodbye too.
Now, let's imagine you install an OS inside a virtual machine, and the OS detects that the CPU has flaws and implements work-arounds for those flaws. Then it's migrated to a different CPU with different flaws that need different work-arounds.
Basically, what they're doing is reducing the CPU feature set to the lowest common denominator (and the number of CPUs/cores, amount of RAM, etc), so that inside the virtual machine all (supported) computers look the same. The problem is that all (supported) computers aren't the same - you lose features, you lose optimizations and you lose reliability.







Member since:
2005-11-16
Hi,
So, let me get this straight - you've got a kernel running under one "quad core virtual machine" that was told that each of the virtual CPUs support certain features (e.g. SSE4).
Then you migrate this virtual machine to an old 80486 box, and suddenly 3 cores and all the modern CPU features are gone, and the kernel and all the applications that were relying on these features just keep running?
Maybe, for the purpose of demonstration, they made sure that all CPUs were very similar (same number of cores, similar features, etc) and disabled any features in some CPUs that weren't present in others...