public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Ram Pai <linuxram@us.ibm.com>
To: Sheng Yang <sheng@linux.intel.com>
Cc: kvm@vger.kernel.org, Anthony Liguori <aliguori@us.ibm.com>,
	Ryan Harper <ryanh@us.ibm.com>
Subject: Re: kvm: emulation failure
Date: Sun, 21 Jun 2009 23:55:46 -0700	[thread overview]
Message-ID: <1245653746.6262.365.camel@localhost> (raw)
In-Reply-To: <200906221312.36795.sheng@linux.intel.com>

On Mon, 2009-06-22 at 13:12 +0800, Sheng Yang wrote:
> On Saturday 20 June 2009 03:23:40 Ram Pai wrote:
> > I see this problem with a x86 sles10 guest running on x86_64 intel host.
> > If the guest is reset abruptly and rebooted, some where
> > before grub sequence it hangs and the following message is seen in the
> > logs
> >
> > emulation failed (pagetable) rip 7ed5 66 60 ac 20.
> >
> > I located this instruction sequence in isolinux.bin on the iso ;if that
> > is relevant.
> >
> >
> > I did some analysis and find that there is an ept violation, which is
> > handled and then the next instruction '66 60' is attempted to decode
> > and emulate. But decode fails. kvm continues loops in the kernel
> > in __vcpu_run().
> >
> > the code path is
> >
> > kvm_run() -> __vcpu_run() -> vcpu_enter_guest() -> kvm_handle_exit() ->
> > handle_ept_violation() -> kvm_mmu_page_fault() -> emulate_instruction() ->
> > x86_decode_insn()
> >
> 
> Hi Ram
> 
> Seems KVM failed to emulate a unknown instruction. 
> 
> 00000000  6660              pushad
> 00000002  AC                lodsb
> 
> And PUSHAD have not implemented in x86_emulate.c.

Thanks Sheng for your response,

Good. that was the conclusion i had reached reading the code. However
was not sure whether the (a) the code path should have never reached
there or (b) the code must have learnt to emulate pushad.

Sounds like (b) is the case.

> 
> But I am a little curious about why this code path was only triggered when 
> reset. Maybe other issue exists.

What do you want me to check? I have seen ept violation code getting
triggered a few number of times at various stages. But the one reported
above is the only case where the instruction being emulated is 66 60. 

one more observation:
  seen only if the /boot partition is reiserfs. I have been unable to
  reproduce this with /boot being ext3.


thanks and let me know,
RP


  reply	other threads:[~2009-06-22  6:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-19 19:23 kvm: emulation failure Ram Pai
2009-06-22  5:12 ` Sheng Yang
2009-06-22  6:55   ` Ram Pai [this message]
2009-06-22  7:11     ` Sheng Yang
2009-06-22  8:26     ` Avi Kivity
2009-06-22 18:20       ` Ram Pai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1245653746.6262.365.camel@localhost \
    --to=linuxram@us.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=ryanh@us.ibm.com \
    --cc=sheng@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox