Skip to contentSkip to conversation

Kernel 3.9 - can't boot qemu with accel=kvm _and_ networking enabled

DISCUSSION Vladimir 2 participants 6 messages May 7, 2013 – May 9, 2013 KVM

lore
Share & tools
lore

Vladimir

author
#0 lore raw

Hello,

After upgrading kernel from 3.8.x to 3.9 booting virtual machine with kvm acceleration enabled stuck at or after iPXE initialization:
/usr/bin/qemu-system-x86_64 ... works as expected /usr/bin/qemu-system-x86_64 -machine accel=kvm ... stuck If network is disabled (-net none) everything workd as expected.

I'd appreciate any thoughts regarding this problem.

maintainer
#1 lore raw

Il 07/05/2013 15:48, Vladimir ha scritto:

Quoted 7 lines

Hello,

After upgrading kernel from 3.8.x to 3.9 booting virtual machine with kvm acceleration enabled stuck at or after iPXE initialization:
/usr/bin/qemu-system-x86_64 ... works as expected /usr/bin/qemu-system-x86_64 -machine accel=kvm ... stuck If network is disabled (-net none) everything workd as expected.

What is the full command line you're using, and the versions of qemu/seabios/ipxe?

Paolo

author
#2 lore raw

Paolo,

The full command line is:
qemu-system-x86_64 -machine accel=kvm -m 1024m \
-net tap -net nic \
-drive file=/dev/zpool/testsrv,index=0,cache=writethrough \
-k en-us \
-no-kvm-irqchip \
-vga cirrus

I've tried any combinations of "-net" options, but the result is always the same. I think this somehow related to
http://article.gmane.org/gmane.comp.emulators.kvm.devel/109461, as setting "emulate_invalid_guest_state=0" solves the problem However, I'm not aware of any consequences of this change.

Regards,
Vlad.

Quoted 12 lines · Paolo Bonzini

Il 07/05/2013 15:48, Vladimir ha scritto:

Quoted 7 lines

Hello,

After upgrading kernel from 3.8.x to 3.9 booting virtual machine with kvm acceleration enabled stuck at or after iPXE initialization:
/usr/bin/qemu-system-x86_64 ... works as expected /usr/bin/qemu-system-x86_64 -machine accel=kvm ... stuck If network is disabled (-net none) everything workd as expected.

What is the full command line you're using, and the versions of qemu/seabios/ipxe?

Paolo

maintainer
#3 lore raw
Quoted 10 lines

Paolo,

The full command line is:
qemu-system-x86_64 -machine accel=kvm -m 1024m \
-net tap -net nic \
-drive file=/dev/zpool/testsrv,index=0,cache=writethrough \
-k en-us \
-no-kvm-irqchip \
-vga cirrus

Quoted 5 lines

I've tried any combinations of "-net" options, but the result is always the same. I think this somehow related to
http://article.gmane.org/gmane.comp.emulators.kvm.devel/109461, as setting "emulate_invalid_guest_state=0" solves the problem However, I'm not aware of any consequences of this change.

Actually, the other bug involves sgabios and you are not using it. Please try executing the following commands from the monitor (you can use "-monitor stdio" to make cut-and-paste simpler):

x/8i \$pc
x/64b \$pc

and include the output in the reply to this message.

Thanks,

Paolo

author
#4 lore raw

Here they are:

(qemu) x/8i $pc

0x00000000000fc49b:  lgdtw  %cs:-0x2c60
0x00000000000fc4a1:  mov    %cr0,%eax
0x00000000000fc4a4:  or     $0x1,%eax
0x00000000000fc4a8:  mov    %eax,%cr0
0x00000000000fc4ab:  ljmpl  $0x8,$0xfc4b3
0x00000000000fc4b3:  mov    $0x10,%ax
0x00000000000fc4b6:  add    %al,(%bx,%si)
0x00000000000fc4b8:  mov    %ax,%ds

(qemu) x/64b $pc

0x00000000000fc49b:  lgdtw  %cs:-0x2c60
0x00000000000fc4a1:  mov    %cr0,%eax
0x00000000000fc4a4:  or     $0x1,%eax
0x00000000000fc4a8:  mov    %eax,%cr0
0x00000000000fc4ab:  ljmpl  $0x8,$0xfc4b3
0x00000000000fc4b3:  mov    $0x10,%ax
0x00000000000fc4b6:  add    %al,(%bx,%si)
0x00000000000fc4b8:  mov    %ax,%ds
0x00000000000fc4ba:  mov    %ax,%es
0x00000000000fc4bc:  mov    %ax,%ss
0x00000000000fc4be:  mov    %ax,%fs
0x00000000000fc4c0:  mov    %ax,%gs
0x00000000000fc4c2:  mov    %cx,%ax
0x00000000000fc4c4:  jmp    *%dx
0x00000000000fc4c6:  mov    %ax,%cx
0x00000000000fc4c8:  mov    $0x20,%ax
0x00000000000fc4cb:  add    %al,(%bx,%si)
0x00000000000fc4cd:  mov    %ax,%ds
0x00000000000fc4cf:  mov    %ax,%es
0x00000000000fc4d1:  mov    %ax,%ss
0x00000000000fc4d3:  mov    %ax,%fs
0x00000000000fc4d5:  mov    %ax,%gs
0x00000000000fc4d7:  ljmpl  $0xc189,$0x18c4f4
0x00000000000fc4df:  mov    $0x30,%ax
0x00000000000fc4e2:  add    %al,(%bx,%si)
0x00000000000fc4e4:  mov    %ax,%ds
0x00000000000fc4e6:  mov    %ax,%es
0x00000000000fc4e8:  mov    %ax,%ss
0x00000000000fc4ea:  mov    %ax,%fs
0x00000000000fc4ec:  mov    %ax,%gs
0x00000000000fc4ee:  ljmpl  $0x200f,$0x28c4f4
0x00000000000fc4f6:  shlb   $0xe0,-0x7d(%bp)
0x00000000000fc4fa:  decb   (%bx)
0x00000000000fc4fc:  and    %al,%al
0x00000000000fc4fe:  ljmp   $0xf000,$0xc503
0x00000000000fc503:  lidtw  %cs:-0x2c18
0x00000000000fc509:  xor    %ax,%ax
0x00000000000fc50b:  mov    %ax,%fs
0x00000000000fc50d:  mov    %ax,%gs
0x00000000000fc50f:  mov    %ax,%es
0x00000000000fc511:  mov    %ax,%ds
0x00000000000fc513:  mov    %ax,%ss
0x00000000000fc515:  mov    %ecx,%eax
0x00000000000fc518:  jmpl   *%edx
0x00000000000fc51b:  push   %ebp
0x00000000000fc51d:  push   %eax
0x00000000000fc51f:  pushl  %es
0x00000000000fc521:  push   %cs
0x00000000000fc522:  push   $0xc566
0x00000000000fc525:  addr32 pushw %es:0x24(%eax)
0x00000000000fc52a:  addr32 pushl %es:0x20(%eax)
0x00000000000fc530:  addr32 mov %es:0x4(%eax),%edi
0x00000000000fc536:  addr32 mov %es:0x8(%eax),%esi
0x00000000000fc53c:  addr32 mov %es:0xc(%eax),%ebp
0x00000000000fc542:  addr32 mov %es:0x10(%eax),%ebx
0x00000000000fc548:  addr32 mov %es:0x14(%eax),%edx
0x00000000000fc54e:  addr32 mov %es:0x18(%eax),%ecx
0x00000000000fc554:  addr32 mov %es:(%eax),%ds
0x00000000000fc558:  addr32 pushl %es:0x1c(%eax)
0x00000000000fc55e:  addr32 mov %es:0x2(%eax),%es
0x00000000000fc563:  pop    %eax
0x00000000000fc565:  iret  
0x00000000000fc566:  pushf 
0x00000000000fc567:  cli   
Quoted 27 lines · Paolo Bonzini
Quoted 10 lines

Paolo,

The full command line is:
qemu-system-x86_64 -machine accel=kvm -m 1024m \
-net tap -net nic \
-drive file=/dev/zpool/testsrv,index=0,cache=writethrough \
-k en-us \
-no-kvm-irqchip \
-vga cirrus

Quoted 5 lines

I've tried any combinations of "-net" options, but the result is always the same. I think this somehow related to
http://article.gmane.org/gmane.comp.emulators.kvm.devel/109461, as setting "emulate_invalid_guest_state=0" solves the problem However, I'm not aware of any consequences of this change.

Actually, the other bug involves sgabios and you are not using it. Please try executing the following commands from the monitor (you can use "-monitor stdio" to make cut-and-paste simpler):

   x/8i \$pc
   x/64b \$pc

and include the output in the reply to this message.

Thanks,

Paolo