Laurent Vivier wrote:
> 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").
>
>   

Not being able to emulate is sometimes legitimate.  In the case of
writing to a write-protected guest page table, we simply
un-write-protect it and go back to the guest (which should now execute
the instruction natively).

Perhaps the logic that deals with this (the call to
kvm_mmu_unprotect_page_virt() in emulate_instruction()) was broken by
your changes.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to 
panic.


-------------------------------------------------------------------------
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/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to