public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
@ 2013-05-07  9:55 Jun'ichi Nomura
  2013-05-07 10:35 ` Gleb Natapov
  2013-05-10  2:51 ` Jun'ichi Nomura
  0 siblings, 2 replies; 11+ messages in thread
From: Jun'ichi Nomura @ 2013-05-07  9:55 UTC (permalink / raw)
  To: kvm

Hello,

With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
a guest stuck during boot (seemingly in BIOS).
When setting emulate_invalid_guest_state=0, it does boot.
(With v3.8 kernel and older, the guest used to boot fine by default.)

The userspace is qemu-kvm of RHEL6.
It seems the guest boots up fine with upstream qemu 1.4.1.

Is this a kernel bug? Or is the userspace just too old to run on v3.9?


# virsh start vm12; virsh console vm12
Domain vm12 started

Connected to domain vm12
Escape character is ^]

Google, Inc.
Serial Graphics Adapter 07/26/11
SGABIOS $Id: sgabios.S 8 2010-04-22 00:03:40Z nlaredo $ (mockbuild@hs20-bc2-3.build.redhat.com) Tue Jul 26 15:05:08 UTC 2011
Term: 
<Ctrl-]>

# virsh qemu-monitor-command vm12 --hmp info registers
EAX=f000e850 EBX=0000ffff ECX=00000000 EDX=0000ffff
ESI=00000104 EDI=00000060 EBP=00000000 ESP=00006eb0
EIP=000006ca EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0040 00000400 ffffffff 00809300
CS =c000 000c0000 ffffffff 00809b00
SS =0000 00000000 ffffffff 00809300
DS =0040 00000400 ffffffff 00809300
FS =0000 00000000 ffffffff 00809300
GS =0000 00000000 ffffffff 00809300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     000fc558 00000037
IDT=     00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000

# cat /sys/module/kvm_intel/parameters/emulate_invalid_guest_state 
Y
# cat /sys/module/kvm_intel/parameters/unrestricted_guest
N

-- 
Jun'ichi Nomura, NEC Corporation

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07  9:55 regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y Jun'ichi Nomura
@ 2013-05-07 10:35 ` Gleb Natapov
  2013-05-07 11:05   ` Jun'ichi Nomura
  2013-05-10  2:51 ` Jun'ichi Nomura
  1 sibling, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2013-05-07 10:35 UTC (permalink / raw)
  To: Jun'ichi Nomura; +Cc: kvm

On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
> Hello,
> 
> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
> a guest stuck during boot (seemingly in BIOS).
> When setting emulate_invalid_guest_state=0, it does boot.
> (With v3.8 kernel and older, the guest used to boot fine by default.)
> 
> The userspace is qemu-kvm of RHEL6.
> It seems the guest boots up fine with upstream qemu 1.4.1.
> 
> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
> 
> 
It should work. What seabios version are you using?

> # virsh start vm12; virsh console vm12
> Domain vm12 started
> 
> Connected to domain vm12
> Escape character is ^]
> 
> Google, Inc.
> Serial Graphics Adapter 07/26/11
> SGABIOS $Id: sgabios.S 8 2010-04-22 00:03:40Z nlaredo $ (mockbuild@hs20-bc2-3.build.redhat.com) Tue Jul 26 15:05:08 UTC 2011
> Term: 
> <Ctrl-]>
> 
> # virsh qemu-monitor-command vm12 --hmp info registers
> EAX=f000e850 EBX=0000ffff ECX=00000000 EDX=0000ffff
> ESI=00000104 EDI=00000060 EBP=00000000 ESP=00006eb0
> EIP=000006ca EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
> ES =0040 00000400 ffffffff 00809300
> CS =c000 000c0000 ffffffff 00809b00
> SS =0000 00000000 ffffffff 00809300
> DS =0040 00000400 ffffffff 00809300
> FS =0000 00000000 ffffffff 00809300
> GS =0000 00000000 ffffffff 00809300
> LDT=0000 00000000 0000ffff 00008200
> TR =0000 00000000 0000ffff 00008b00
> GDT=     000fc558 00000037
> IDT=     00000000 000003ff
> CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
> DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
> DR6=ffff0ff0 DR7=00000400
> FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
> FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
> FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
> FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
> FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
> XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
> XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
> XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
> XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
> 
> # cat /sys/module/kvm_intel/parameters/emulate_invalid_guest_state 
> Y
> # cat /sys/module/kvm_intel/parameters/unrestricted_guest
> N
> 
> -- 
> Jun'ichi Nomura, NEC Corporation
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
			Gleb.

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 10:35 ` Gleb Natapov
@ 2013-05-07 11:05   ` Jun'ichi Nomura
  2013-05-07 12:06     ` Gleb Natapov
  0 siblings, 1 reply; 11+ messages in thread
From: Jun'ichi Nomura @ 2013-05-07 11:05 UTC (permalink / raw)
  To: Gleb Natapov; +Cc: kvm

On 05/07/13 19:35, Gleb Natapov wrote:
> On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
>> Hello,
>>
>> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
>> a guest stuck during boot (seemingly in BIOS).
>> When setting emulate_invalid_guest_state=0, it does boot.
>> (With v3.8 kernel and older, the guest used to boot fine by default.)
>>
>> The userspace is qemu-kvm of RHEL6.
>> It seems the guest boots up fine with upstream qemu 1.4.1.
>>
>> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
>>
>>
> It should work. What seabios version are you using?

It's seabios-0.6.1.2-26.el6.
(and qemu-kvm-0.12.1.2-2.355.el6)

> 
>> # virsh start vm12; virsh console vm12
>> Domain vm12 started
>>
>> Connected to domain vm12
>> Escape character is ^]
>>
>> Google, Inc.
>> Serial Graphics Adapter 07/26/11
>> SGABIOS $Id: sgabios.S 8 2010-04-22 00:03:40Z nlaredo $ (mockbuild@hs20-bc2-3.build.redhat.com) Tue Jul 26 15:05:08 UTC 2011
>> Term: 
>> <Ctrl-]>
>>
>> # virsh qemu-monitor-command vm12 --hmp info registers
>> EAX=f000e850 EBX=0000ffff ECX=00000000 EDX=0000ffff
>> ESI=00000104 EDI=00000060 EBP=00000000 ESP=00006eb0
>> EIP=000006ca EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
>> ES =0040 00000400 ffffffff 00809300
>> CS =c000 000c0000 ffffffff 00809b00
>> SS =0000 00000000 ffffffff 00809300
>> DS =0040 00000400 ffffffff 00809300
>> FS =0000 00000000 ffffffff 00809300
>> GS =0000 00000000 ffffffff 00809300
>> LDT=0000 00000000 0000ffff 00008200
>> TR =0000 00000000 0000ffff 00008b00
>> GDT=     000fc558 00000037
>> IDT=     00000000 000003ff
>> CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
>> DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
>> DR6=ffff0ff0 DR7=00000400
>> FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
>> FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
>> FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
>> FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
>> FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
>> XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
>> XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
>> XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
>> XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
>>
>> # cat /sys/module/kvm_intel/parameters/emulate_invalid_guest_state 
>> Y
>> # cat /sys/module/kvm_intel/parameters/unrestricted_guest
>> N

-- 
Jun'ichi Nomura, NEC Corporation


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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 11:05   ` Jun'ichi Nomura
@ 2013-05-07 12:06     ` Gleb Natapov
  2013-05-07 14:46       ` Paolo Bonzini
  0 siblings, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2013-05-07 12:06 UTC (permalink / raw)
  To: Jun'ichi Nomura; +Cc: kvm

On Tue, May 07, 2013 at 08:05:27PM +0900, Jun'ichi Nomura wrote:
> On 05/07/13 19:35, Gleb Natapov wrote:
> > On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
> >> Hello,
> >>
> >> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
> >> a guest stuck during boot (seemingly in BIOS).
> >> When setting emulate_invalid_guest_state=0, it does boot.
> >> (With v3.8 kernel and older, the guest used to boot fine by default.)
> >>
> >> The userspace is qemu-kvm of RHEL6.
> >> It seems the guest boots up fine with upstream qemu 1.4.1.
> >>
> >> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
> >>
> >>
> > It should work. What seabios version are you using?
> 
> It's seabios-0.6.1.2-26.el6.
> (and qemu-kvm-0.12.1.2-2.355.el6)
> 
Works for me, but it looks like in your case the bios is in option rom.
What are you booting from? What's the qemu command line?

What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
when it hangs?

--
			Gleb.

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 12:06     ` Gleb Natapov
@ 2013-05-07 14:46       ` Paolo Bonzini
  2013-05-07 15:04         ` Gleb Natapov
  2013-05-08  3:22         ` Jun'ichi Nomura
  0 siblings, 2 replies; 11+ messages in thread
From: Paolo Bonzini @ 2013-05-07 14:46 UTC (permalink / raw)
  To: Gleb Natapov; +Cc: Jun'ichi Nomura, kvm

Il 07/05/2013 14:06, Gleb Natapov ha scritto:
> On Tue, May 07, 2013 at 08:05:27PM +0900, Jun'ichi Nomura wrote:
>> On 05/07/13 19:35, Gleb Natapov wrote:
>>> On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
>>>> Hello,
>>>>
>>>> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
>>>> a guest stuck during boot (seemingly in BIOS).
>>>> When setting emulate_invalid_guest_state=0, it does boot.
>>>> (With v3.8 kernel and older, the guest used to boot fine by default.)
>>>>
>>>> The userspace is qemu-kvm of RHEL6.
>>>> It seems the guest boots up fine with upstream qemu 1.4.1.
>>>>
>>>> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
>>>>
>>>>
>>> It should work. What seabios version are you using?
>>
>> It's seabios-0.6.1.2-26.el6.
>> (and qemu-kvm-0.12.1.2-2.355.el6)
>>
> Works for me, but it looks like in your case the bios is in option rom.

What version of vgabios, too?

> What are you booting from? What's the qemu command line?
> 
> What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
> when it hangs?

Paolo


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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 14:46       ` Paolo Bonzini
@ 2013-05-07 15:04         ` Gleb Natapov
  2013-05-07 16:11           ` Paolo Bonzini
  2013-05-08  3:22         ` Jun'ichi Nomura
  1 sibling, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2013-05-07 15:04 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Jun'ichi Nomura, kvm

On Tue, May 07, 2013 at 04:46:22PM +0200, Paolo Bonzini wrote:
> Il 07/05/2013 14:06, Gleb Natapov ha scritto:
> > On Tue, May 07, 2013 at 08:05:27PM +0900, Jun'ichi Nomura wrote:
> >> On 05/07/13 19:35, Gleb Natapov wrote:
> >>> On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
> >>>> Hello,
> >>>>
> >>>> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
> >>>> a guest stuck during boot (seemingly in BIOS).
> >>>> When setting emulate_invalid_guest_state=0, it does boot.
> >>>> (With v3.8 kernel and older, the guest used to boot fine by default.)
> >>>>
> >>>> The userspace is qemu-kvm of RHEL6.
> >>>> It seems the guest boots up fine with upstream qemu 1.4.1.
> >>>>
> >>>> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
> >>>>
> >>>>
> >>> It should work. What seabios version are you using?
> >>
> >> It's seabios-0.6.1.2-26.el6.
> >> (and qemu-kvm-0.12.1.2-2.355.el6)
> >>
> > Works for me, but it looks like in your case the bios is in option rom.
> 
> What version of vgabios, too?
> 
Heh, good call, actually he uses sgabios. It is right there in the output :). Need
to try that.

> > What are you booting from? What's the qemu command line?
> > 
> > What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
> > when it hangs?
> 
> Paolo

--
			Gleb.

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 15:04         ` Gleb Natapov
@ 2013-05-07 16:11           ` Paolo Bonzini
  0 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2013-05-07 16:11 UTC (permalink / raw)
  To: Gleb Natapov; +Cc: Jun'ichi Nomura, kvm



----- Messaggio originale -----
> Da: "Gleb Natapov" <gleb@redhat.com>
> A: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>, kvm@vger.kernel.org
> Inviato: Martedì, 7 maggio 2013 17:04:15
> Oggetto: Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
> 
> On Tue, May 07, 2013 at 04:46:22PM +0200, Paolo Bonzini wrote:
> > Il 07/05/2013 14:06, Gleb Natapov ha scritto:
> > > On Tue, May 07, 2013 at 08:05:27PM +0900, Jun'ichi Nomura wrote:
> > >> On 05/07/13 19:35, Gleb Natapov wrote:
> > >>> On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
> > >>>> Hello,
> > >>>>
> > >>>> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
> > >>>> a guest stuck during boot (seemingly in BIOS).
> > >>>> When setting emulate_invalid_guest_state=0, it does boot.
> > >>>> (With v3.8 kernel and older, the guest used to boot fine by default.)
> > >>>>
> > >>>> The userspace is qemu-kvm of RHEL6.
> > >>>> It seems the guest boots up fine with upstream qemu 1.4.1.
> > >>>>
> > >>>> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
> > >>>>
> > >>>>
> > >>> It should work. What seabios version are you using?
> > >>
> > >> It's seabios-0.6.1.2-26.el6.
> > >> (and qemu-kvm-0.12.1.2-2.355.el6)
> > >>
> > > Works for me, but it looks like in your case the bios is in option rom.
> > 
> > What version of vgabios, too?
> > 
> Heh, good call, actually he uses sgabios. It is right there in the output :).
> Need to try that.

sgabios is in addition to vgabios, not instead of it.

Paolo

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07 14:46       ` Paolo Bonzini
  2013-05-07 15:04         ` Gleb Natapov
@ 2013-05-08  3:22         ` Jun'ichi Nomura
  2013-05-08  7:34           ` Jun'ichi Nomura
  1 sibling, 1 reply; 11+ messages in thread
From: Jun'ichi Nomura @ 2013-05-08  3:22 UTC (permalink / raw)
  To: Paolo Bonzini, Gleb Natapov; +Cc: kvm

On 05/07/13 23:46, Paolo Bonzini wrote:
> Il 07/05/2013 14:06, Gleb Natapov ha scritto:
>> On Tue, May 07, 2013 at 08:05:27PM +0900, Jun'ichi Nomura wrote:
>>> On 05/07/13 19:35, Gleb Natapov wrote:
>>>> On Tue, May 07, 2013 at 06:55:23PM +0900, Jun'ichi Nomura wrote:
>>>>> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
>>>>> a guest stuck during boot (seemingly in BIOS).
>>>>> When setting emulate_invalid_guest_state=0, it does boot.
>>>>> (With v3.8 kernel and older, the guest used to boot fine by default.)
>>>>>
>>>>> The userspace is qemu-kvm of RHEL6.
>>>>> It seems the guest boots up fine with upstream qemu 1.4.1.
>>>>>
>>>>> Is this a kernel bug? Or is the userspace just too old to run on v3.9?
>>>>>
>>>>>
>>>> It should work. What seabios version are you using?
>>>
>>> It's seabios-0.6.1.2-26.el6.
>>> (and qemu-kvm-0.12.1.2-2.355.el6)
>>>
>> Works for me, but it looks like in your case the bios is in option rom.
> 
> What version of vgabios, too?

vgabios-0.6b-3.7.el6
sgabios-bin-0-0.3.20110621svn.el6

>> What are you booting from? What's the qemu command line?

>From disk image.

Command line is like this:
  /usr/libexec/qemu-kvm -name vm12 -S -M rhel6.3.0 -enable-kvm -m 1024 -smp 2,sockets=2,cores=1,threads=1 -uuid 539b7cdb-7afc-4237-bdbc-8ddbdf5e0204 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/vm12.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/dev/kvmvg/vm12,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3

When I edit VM definition so that qemu-kvm is invoked without '-nographic',
the guest boots fine.

>> What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
>> when it hangs?

# virsh qemu-monitor-command vm12 --hmp x/4i \$pc
0x00000000000c06ca:  aam    $0xa
0x00000000000c06cc:  mov    %ax,%bx
0x00000000000c06ce:  mov    %bh,%al
0x00000000000c06d0:  aam    $0xa

# virsh qemu-monitor-command vm12 --hmp x/8b \$pc
00000000000c06ca: 0xd4 0x0a 0x89 0xc3 0x88 0xf8 0xd4 0x0a

-- 
Jun'ichi Nomura, NEC Corporation


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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-08  3:22         ` Jun'ichi Nomura
@ 2013-05-08  7:34           ` Jun'ichi Nomura
  2013-05-08  8:29             ` Paolo Bonzini
  0 siblings, 1 reply; 11+ messages in thread
From: Jun'ichi Nomura @ 2013-05-08  7:34 UTC (permalink / raw)
  To: Paolo Bonzini, Gleb Natapov; +Cc: kvm

On 05/08/13 12:22, Jun'ichi Nomura wrote:
>> Il 07/05/2013 14:06, Gleb Natapov ha scritto:
>>> What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
>>> when it hangs?
> 
> # virsh qemu-monitor-command vm12 --hmp x/4i \$pc
> 0x00000000000c06ca:  aam    $0xa
> 0x00000000000c06cc:  mov    %ax,%bx
> 0x00000000000c06ce:  mov    %bh,%al
> 0x00000000000c06d0:  aam    $0xa
> 
> # virsh qemu-monitor-command vm12 --hmp x/8b \$pc
> 00000000000c06ca: 0xd4 0x0a 0x89 0xc3 0x88 0xf8 0xd4 0x0a

I could also reproduce the problem with following:

# dd if=/dev/zero of=/root/empty.img bs=1M count=1
# /usr/libexec/qemu-kvm -enable-kvm -nographic -nodefconfig -nodefaults -chardev socket,id=cmon,host=localhost,port=8888,server,nowait -mon chardev=cmon,mode=readline -drive file=/root/empty.img -chardev stdio,id=ser0 -device isa-serial,chardev=ser0

With v3.8 kernel, it reaches to the point showing "No bootable device"
(as expected).
With v3.9 kernel, no visible characters appear on console.

EIP of the stalled guest points to other instruction than the
previously reported case though:

(qemu) info registers
info registers
EAX=f000e81b EBX=00000130 ECX=0000fa2b EDX=0000031b
ESI=000000ed EDI=00000050 EBP=00000000 ESP=00006eaa
EIP=00000564 EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0040 00000400 ffffffff 00809300
CS =c000 000c0000 ffffffff 00809b00
SS =0000 00000000 ffffffff 00809300
DS =c000 000c0000 ffffffff 00809300
FS =0000 00000000 ffffffff 00809300
GS =0000 00000000 ffffffff 00809300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     000fc558 00000037
IDT=     00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
(qemu) 
(qemu) x/8b $pc
x/8b $pc
00000000000c0564: 0xd7 0x1f 0x24 0x7f 0x88 0xc4 0x88 0xd0
(qemu) 
(qemu) x/i $pc
x/i $pc
0x00000000000c0564:  xlat   %ds:(%bx)

-- 
Jun'ichi Nomura, NEC Corporation

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-08  7:34           ` Jun'ichi Nomura
@ 2013-05-08  8:29             ` Paolo Bonzini
  0 siblings, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2013-05-08  8:29 UTC (permalink / raw)
  To: Jun'ichi Nomura; +Cc: Gleb Natapov, kvm

Il 08/05/2013 09:34, Jun'ichi Nomura ha scritto:
> On 05/08/13 12:22, Jun'ichi Nomura wrote:
>>> Il 07/05/2013 14:06, Gleb Natapov ha scritto:
>>>> What is the output of "virsh qemu-monitor-command vm12 --hmp x/i $pc"
>>>> when it hangs?
>>
>> # virsh qemu-monitor-command vm12 --hmp x/4i \$pc
>> 0x00000000000c06ca:  aam    $0xa
>> 0x00000000000c06cc:  mov    %ax,%bx
>> 0x00000000000c06ce:  mov    %bh,%al
>> 0x00000000000c06d0:  aam    $0xa
>>
>> # virsh qemu-monitor-command vm12 --hmp x/8b \$pc
>> 00000000000c06ca: 0xd4 0x0a 0x89 0xc3 0x88 0xf8 0xd4 0x0a
>>
>> (qemu) x/8b $pc
>> x/8b $pc
>> 00000000000c0564: 0xd7 0x1f 0x24 0x7f 0x88 0xc4 0x88 0xd0
>> (qemu) 
>> (qemu) x/i $pc
>> x/i $pc
>> 0x00000000000c0564:  xlat   %ds:(%bx)

Both of these sequences are found in sgabios.  The second goes on as
follows:

  popw %ds
  andb $0x7f, %al
  movb %al, %ah
  movb %dl, %al

Thanks for the report!

Paolo

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

* Re: regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y
  2013-05-07  9:55 regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y Jun'ichi Nomura
  2013-05-07 10:35 ` Gleb Natapov
@ 2013-05-10  2:51 ` Jun'ichi Nomura
  1 sibling, 0 replies; 11+ messages in thread
From: Jun'ichi Nomura @ 2013-05-10  2:51 UTC (permalink / raw)
  To: kvm, Paolo Bonzini, Gleb Natapov

On 05/07/13 18:55, Jun'ichi Nomura wrote:
> With v3.9 kernel and Nehalem CPU (i.e. unrestricted_guest=N),
> a guest stuck during boot (seemingly in BIOS).
> When setting emulate_invalid_guest_state=0, it does boot.
> (With v3.8 kernel and older, the guest used to boot fine by default.)
> 
> The userspace is qemu-kvm of RHEL6.
> It seems the guest boots up fine with upstream qemu 1.4.1.
> 
> Is this a kernel bug? Or is the userspace just too old to run on v3.9?

With the following patches on top of v3.9, the problem goes away.
Thank you!

  Gleb Natapov (1):
      KVM: VMX: fix halt emulation while emulating invalid guest sate

  Paolo Bonzini (3):
      KVM: emulator: emulate AAM
      KVM: emulator: emulate XLAT
      KVM: emulator: emulate SALC

-- 
Jun'ichi Nomura, NEC Corporation


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

end of thread, other threads:[~2013-05-10  2:52 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-07  9:55 regression in v3.9? a guest stuck in BIOS if emulate_invalid_guest_state=Y Jun'ichi Nomura
2013-05-07 10:35 ` Gleb Natapov
2013-05-07 11:05   ` Jun'ichi Nomura
2013-05-07 12:06     ` Gleb Natapov
2013-05-07 14:46       ` Paolo Bonzini
2013-05-07 15:04         ` Gleb Natapov
2013-05-07 16:11           ` Paolo Bonzini
2013-05-08  3:22         ` Jun'ichi Nomura
2013-05-08  7:34           ` Jun'ichi Nomura
2013-05-08  8:29             ` Paolo Bonzini
2013-05-10  2:51 ` Jun'ichi Nomura

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