public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Sheng Yang <sheng.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: emulation failed but !mmio_needed? rip 10000 fc 0f 01 15
Date: Sat, 24 Nov 2007 09:48:42 +0200	[thread overview]
Message-ID: <4747D75A.5050203@qumranet.com> (raw)
In-Reply-To: <200711241221.00548.sheng.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Sheng Yang wrote:
> On Saturday 24 November 2007 07:23:20 Neo Jia wrote:
>   
>> hi,
>>
>> I happened to get a "emulation fail" when running the following command:
>>
>> System environment: Intel Core 2 Duo (E6600) x86_64 Fedora 8
>> (2.6.23.1-49.fc8).
>>
>> qemu-img create -f qcow debian-testing.img 10G
>>
>> sudo qemu-system-x86_64 -cdrom
>> /home/cjia/download/debian-testing-i386-netinst.iso -hda
>> debian-testing.img -boot d -m 1024
>>
>> Everything works fine until it prompts me that the installation is
>> complete and need reboot.
>>
>>     
>>> sudo qemu-system-x86_64 -cdrom
>>> /home/cjia/download/debian-testing-i386-netinst.iso -hda
>>> debian-testing.img -boot d -m 1024
>>>       
>> exception 13 (0)
>> rax 0000000000000100 rbx 0000000000000100 rcx 000000000000ffff rdx
>> 0000000000000600
>> rsi 0000000000000000 rdi 0000000000000000 rsp 0000000000000000 rbp
>> 0000000000000000
>> r8  0000000000000000 r9  0000000000000000 r10 0000000000000000 r11
>> 0000000000000000
>> r12 0000000000000000 r13 0000000000000000 r14 0000000000000000 r15
>> 0000000000000000
>> rip 0000000000010000 rflags 00033003
>> cs f000 (000f0000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> ds 0000 (00000000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> es 0000 (00000000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> ss 0000 (00000000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> fs 0000 (00000000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> gs 0000 (00000000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>> tr 0080 (40c00000/00002088 p 1 dpl 0 db 0 s 0 type b l 0 g 0 avl 0)
>> ldt 0000 (00000000/0000ffff p 1 dpl 0 db 0 s 0 type 2 l 0 g 0 avl 0)
>> gdt 0/ffff
>> idt 0/ffff
>> cr0 60000010 cr2 0 cr3 0 cr4 0 cr8 0 efer 0
>> code: 00 00 00 00 ea 5b e0 00 f0 31 30 2f 32 38 2f 30 37 00 fc f5 -->
>> fc 0f 01 15 92 a0 31 00 b8 18 00 00 00 8e d8 8e c0 8e e0 8e e8 31 c0
>> bf 00 30 39 00 b9 7c
>> Aborted
>>
>> ---> dmesg:
>>
>> kvm: emulating exchange as write
>> emulation failed but !mmio_needed? rip 10000 fc 0f 01 15    // I
>> searched through the source code but not find a place to generate "but
>> !mmio_needed?" string ...
>>     
>
>   

That's been removed some time ago (and replaced by another string). See 
054b1369679fb97582fc77f25a700d4290ff3e89.


> It due to one instruction haven't been emulated: 0xfc(one byte instruction). 
> Look it up in SDM Vol.2B's opcode map, you can find that's "CLD". And look at 
> what is CLD in SDM Vol.2, you will find "CLD - Clear direction flag". So we 
> miss this in x86_emulate.c.
>
>   
>> The version of kvm I used for kvm module is
>> "694401697ccd822bb08019731c3ee1bb34323d8e" and the kvm-userspace is
>> "a57b838b49bc4e4e7439b18d0323385d53e41c7f".
>> // Not sure if this is the right way to show the version I am using.
>> If not, please correct me, this is the first time I am using git...
>>     
>
> Yeah, that's the right ones. :)
>
>   
>> Anyway, I really want to get some comments about how to trace this
>> problem and would be very glad to dig into it!
>>     
>
> Here is the chance! Add this instruction to our x86 emulator. You can take the 
> implement of "sti" and "cli" as a reference.

While adding the instrucion is helpful, something else has gone wrong 
here.  cs:ip == f000:10000.  You can see the far jump at f000:fff0 
(opcode ea) -- kvm just skipped over it somehow.

Ah, it's been fixed already: see 
c408e4e8d9045d53c1d82c622a5756febd051ef9.  I need to backport it to 2.6.23.

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

  parent reply	other threads:[~2007-11-24  7:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-23 23:23 emulation failed but !mmio_needed? rip 10000 fc 0f 01 15 Neo Jia
     [not found] ` <5d649bdb0711231523r5221466cx6ee17979d27ddbc0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-11-24  4:21   ` Sheng Yang
     [not found]     ` <200711241221.00548.sheng.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2007-11-24  7:48       ` Avi Kivity [this message]
2007-11-24  8:44       ` Neo Jia
2007-11-24  8:00   ` Avi Kivity
     [not found]     ` <4747DA35.6010001-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-24  8:30       ` Neo Jia
2007-11-24  9:45       ` Neo Jia
     [not found]         ` <5d649bdb0711240145g683f7762h35638e88586202a9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-11-25  9:44           ` Avi Kivity
     [not found]             ` <47494402.9020602-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-25 23:30               ` Neo Jia
     [not found]                 ` <474A0590.4050701-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-11-26 10:16                   ` Avi Kivity
     [not found]                     ` <474A9CFE.50106-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-27  7:37                       ` Neo Jia
     [not found]                         ` <5d649bdb0711262337v28e7d3ecm246aa580cda0ca8b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-11-27  8:33                           ` Avi Kivity

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=4747D75A.5050203@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=sheng.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /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