Message ID | 51F00041.3010005@suse.de |
---|---|
State | New |
Headers | show |
On Wed, Jul 24, 2013 at 06:26:41PM +0200, Alexander Graf wrote: > >before. Are you saying configuring BIOS memslot differently solves the > >problem? > > Git bisect pointed to the commit mentioned in this email. The > following patch also gets me a working guest again: > > diff --git a/kvm-all.c b/kvm-all.c > index 4fb4ccb..deca9e5 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1455,7 +1455,7 @@ int kvm_init(void) > s->irq_set_ioctl = KVM_IRQ_LINE_STATUS; > } > > -#ifdef KVM_CAP_READONLY_MEM > +#if 0 //def KVM_CAP_READONLY_MEM > kvm_readonly_mem_allowed = > (kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0); > #endif > Can you disable emulate_invalid_state on 3.7? What happens on upstream kernel (works for me obviously :)). -- Gleb.
On 07/24/2013 06:53 PM, Gleb Natapov wrote: > On Wed, Jul 24, 2013 at 06:26:41PM +0200, Alexander Graf wrote: >>> before. Are you saying configuring BIOS memslot differently solves the >>> problem? >> Git bisect pointed to the commit mentioned in this email. The >> following patch also gets me a working guest again: >> >> diff --git a/kvm-all.c b/kvm-all.c >> index 4fb4ccb..deca9e5 100644 >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -1455,7 +1455,7 @@ int kvm_init(void) >> s->irq_set_ioctl = KVM_IRQ_LINE_STATUS; >> } >> >> -#ifdef KVM_CAP_READONLY_MEM >> +#if 0 //def KVM_CAP_READONLY_MEM >> kvm_readonly_mem_allowed = >> (kvm_check_extension(s, KVM_CAP_READONLY_MEM)> 0); >> #endif >> > Can you disable emulate_invalid_state on 3.7? I could only find emulate_invalid_guest_state. I suppose you mean that one? :) $ rmmod kvm-intel $ modprobe kvm-intel emulate_invalid_guest_state=n $ ./x86_64-softmmu/qemu-system-x86_64 -nographic -kernel /boot/vmlinuz -append console=ttyS0 -bios pc-bios/bios.bin -enable-kvm QEMU 1.5.50 monitor - type 'help' for more information (qemu) KVM: entry failed, hardware error 0x80000021 If you're running a guest on an Intel machine without unrestricted mode support, the failure can be most likely due to the guest entering an invalid state for Intel VT. For example, the guest maybe running in big real mode which is not supported on less recent Intel processors. EAX=00000011 EBX=18ae1000 ECX=00006a12 EDX=000fffa9 ESI=07feb50d EDI=00000000 EBP=000069d2 ESP=000069d2 EIP=0000c489 EFL=00010006 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =fd39 000fd390 ffffffff 00809300 DPL=0 DS16 [-WA] CS =f000 000f0000 0000ffff 00009b00 DPL=0 CS16 [-RA] SS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA] DS =0030 00000000 ffffffff 00809300 DPL=0 DS16 [-WA] FS =0030 00000000 ffffffff 00809300 DPL=0 DS16 [-WA] GS =c900 000c9000 ffffffff 00809300 DPL=0 DS16 [-WA] LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy GDT= 000fd3a8 00000037 IDT= 000fd3e6 00000000 CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=01 1e e0 d3 2e 0f 01 16 a0 d3 0f 20 c0 66 83 c8 01 0f 22 c0 <66> ea 91 c4 0f 00 08 00 b8 10 00 00 00 8e d8 8e c0 8e d0 8e e0 8e e8 89 c8 ff e2 89 c1 b8 QEMU: Terminated > What happens on upstream kernel > (works for me obviously :)). kvm-kmod from 3.9 works. Alex
Am 24.07.2013 18:53, schrieb Gleb Natapov: > What happens on upstream kernel > (works for me obviously :)). 3.10.x has been working fine for me on openSUSE 12.3. Andreas
On Wed, Jul 24, 2013 at 10:25:49PM +0200, Alexander Graf wrote: > On 07/24/2013 06:53 PM, Gleb Natapov wrote: > >On Wed, Jul 24, 2013 at 06:26:41PM +0200, Alexander Graf wrote: > >>>before. Are you saying configuring BIOS memslot differently solves the > >>>problem? > >>Git bisect pointed to the commit mentioned in this email. The > >>following patch also gets me a working guest again: > >> > >>diff --git a/kvm-all.c b/kvm-all.c > >>index 4fb4ccb..deca9e5 100644 > >>--- a/kvm-all.c > >>+++ b/kvm-all.c > >>@@ -1455,7 +1455,7 @@ int kvm_init(void) > >> s->irq_set_ioctl = KVM_IRQ_LINE_STATUS; > >> } > >> > >>-#ifdef KVM_CAP_READONLY_MEM > >>+#if 0 //def KVM_CAP_READONLY_MEM > >> kvm_readonly_mem_allowed = > >> (kvm_check_extension(s, KVM_CAP_READONLY_MEM)> 0); > >> #endif > >> > >Can you disable emulate_invalid_state on 3.7? > > I could only find emulate_invalid_guest_state. I suppose you mean > that one? :) > That one will do :) > $ rmmod kvm-intel > $ modprobe kvm-intel emulate_invalid_guest_state=n > $ ./x86_64-softmmu/qemu-system-x86_64 -nographic -kernel > /boot/vmlinuz -append console=ttyS0 -bios pc-bios/bios.bin > -enable-kvm > QEMU 1.5.50 monitor - type 'help' for more information > (qemu) > KVM: entry failed, hardware error 0x80000021 > Yeah, emulate_invalid_guest_state=0 was broken for a while. Can you try applying a4d3326c2de46fd7bcc47d1e8786efccfc152f81 on top of 3.7 and try again with emulate_invalid_guest_state=0? > >What happens on upstream kernel > >(works for me obviously :)). > > kvm-kmod from 3.9 works. > Doing backwards bisect to see where it was fixed would be interesting. -- Gleb.
diff --git a/kvm-all.c b/kvm-all.c index 4fb4ccb..deca9e5 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -1455,7 +1455,7 @@ int kvm_init(void) s->irq_set_ioctl = KVM_IRQ_LINE_STATUS; } -#ifdef KVM_CAP_READONLY_MEM +#if 0 //def KVM_CAP_READONLY_MEM kvm_readonly_mem_allowed = (kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0); #endif