Re: [PATCH 0/5] Split the emulator: decode & execute

Laurent Vivier
2007-09-17T16:14:57Z

[-- Attachment #1.1: Type: text/plain, Size: 1436 bytes --]

Avi Kivity wrote:
> Laurent Vivier wrote:
>> Avi Kivity wrote:
>>
>>> Laurent Vivier wrote:
>>>
>>>> These patches split the emulator in two parts: one to decode the
>>>> instruction,
>>>> the other to execute it. The decode part is then called only when needed.
>>>>
>>>>
>>>>
>>> Patchset looks good, but fails booting FC6 x86-64 on Intel. It may be a
>>> merge error (did not apply cleanly due to other changes). I pushed this
>>> as a 'split-emulator' branch on the kvm.git repository.
>>>
>>>
>> I think I found the bug (not a merge error...): I just supposed that an
>> instruction fetch cannot failed.
>>
>>
>
> Interesting. I don't see how an instruction fetch can fail on
> uniprocessor. Can you give details of the failure?
>
> Instruction fetches can fail on SMP so a fix is certainly needed.

OK, I spoke too fast.

x86_decode_insn() fails because it is not able to decode:

0xffffffff8110b7ef <__copy_user_nocache+47>: movnti %r11,(%rdi)
or
0xffffffff8110b7ef <__copy_user_nocache+47>: 0x4c 0x0f 0xc3 0x1f

0x4c is decoded as a REX prefix.
0x0f is decoded as a Two-byte opcode
but 0xc3 is unknown in twobyte_table, so we exit because of an unrecognized
opcode ("Cannot emulate").

Some comments ?

Laurent
--
------------- Laurent.Vivier-6ktuUTfB/bM@public.gmane.org --------------
"Software is hard" - Donald Knuth

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 228 bytes --]

-------------------------------------------------------------------------
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/

[-- Attachment #3: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org