public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* Linux in VirtualPC in KVM fails
@ 2009-01-09 15:43 Kevin Wolf
  2009-01-09 17:50 ` Avi Kivity
  0 siblings, 1 reply; 12+ messages in thread
From: Kevin Wolf @ 2009-01-09 15:43 UTC (permalink / raw)
  To: kvm; +Cc: Alexander Graf

Hi,

let's start with the scenario I tried to use: I have two levels of
virtualization. On the physical hardware I run a Linux with KVM. The KVM
guest is a Win2k3 VM which runs VirtualPC. In VirtualPC I try to run a
Linux again (openSUSE 11.1 to be specific, but that shouldn't matter).

The boot menu comes up nicely and so on, but early in the kernel boot it
crashes:

EIP is at kvm_deferred_mmu_op+0x46/0xbf
Call Trace:
 [<c0117f79>] kvm_mmu_write+0x59/0x61
 [<c011bad9>] set_pte_vaddr+0x95/0xec
 [<c011b3b2>] __native_set_fixmap+0x1d/0x24
 [<c054ae5b>] test_wp_bit+0x24/0x6c
 [<c054b6b1>] mem_init+0x295/0x2b8
 [<c053a8a3>] start_kernel+0x262/0x31f

Now obviously this is a KVM function where there should be none. The
problem seems to be that VirtualPC doesn't intercept cpuid and thus the
VirtualPC guest sees the KVM cpuid values where it better wouldn't.
Consequently, it turns on the paravirt support for KVM which is exactly
wrong and leads to the crash on the first hypercall.

The guest has no chance to detect correctly if it's running directly on
KVM or if there is another virtualization layer which can't emulate
cpuid. So the fix must involve the mechanism itself. Alex has suggested
to change the interface to use a KVM-specific MSR instead of cpuid as
these should be handled by any virtualization software. I'm copying him
so he can take over for the details, I just want to get the discussion
started.

So... Comments? Suggestions? Patches? ;-)

Kevin

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2009-01-11  7:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-09 15:43 Linux in VirtualPC in KVM fails Kevin Wolf
2009-01-09 17:50 ` Avi Kivity
2009-01-09 19:00   ` Alexander Graf
2009-01-09 19:04     ` Anthony Liguori
2009-01-09 19:32       ` Avi Kivity
2009-01-09 20:10         ` Anthony Liguori
2009-01-11  7:16           ` Avi Kivity
2009-01-09 19:34     ` Avi Kivity
2009-01-09 19:05   ` Anthony Liguori
2009-01-09 19:24     ` Alexander Graf
2009-01-09 20:09       ` Anthony Liguori
2009-01-11  7:17         ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox