Re: [PATCH 00/11] KVM updates for Linux 2.6.24-rc review

Laurent Vivier
2007-10-21T11:54:39Z

Avi Kivity a écrit :
> Avi Kivity wrote:
>> The following patches fix fallout from the main 2.6.24 KVM merge. An
>> exception is the movnti emulation patch, which adds support for Linux
>> 2.6.16 guests.
>>
>> The patches can be found in kvm.git in the branch kvm-updates-2.6.24.
>> There is also a branch kvm-updates-2.6.25 which will form the basis of
>> the next merge window submission.
>>
>> Please review the patches and let me know if something is wrong or if
>> a patch is missing.
>>
>>
>
>
> Laurent, I believe the following patch (in kvm-updates-2.6.25) needs to
> go into 2.6.24 as well. Can you comment on this?

What kind of comment do you want ?
What are the requirements to go in 2.6.24 instead of 2.6.25 ?

Is a bug correction enough ? :-P

This patch correct a bad behavior of x86_emulate_insn() in case of error with a
REP prefix.

This patch is needed because, without it, when REP prefix is used with an
instruction failing for some reasons (like IO or page fault) we don't restore
all modified registers (like RSI and RDI), but only ECX and EIP, so when we
re-enter in x86_emulate_insn() we modify again an already modified value.
Moreover, this patch manages correctly the case where the instruction fails in
writeback().

>> commit 6de232e39be372f85bea96eb741962acc7fcb1f7
>> Author: Laurent Vivier <Laurent.Vivier@bull.net>
>> Date: Mon Oct 1 11:01:06 2007 +0200
>>
>> KVM: x86 emulator: Correct management of REP prefix
>>
>> This patch corrects some errors appearing when we have an
>> emulation failure
>> on an operation using REP prefix.
>>
>> When x86_emulate_insn() fails, saving EIP and ECX is not enough as
>> emulation
>> should have modified other registers like RSI or RDI. Moreover,
>> the emulation
>> can fail on the writeback, and in this case we are not able to
>> restore
>> registers.
>>
>> At beginning of x86_emulate_insn(), we restore registers from vcpu
>> as they were
>> not modified by x86d_decode_insn() and we save EIP to be able to
>> restore it
>> in case of failure.
>>
>

--
---------------- Laurent.Vivier@bull.net -----------------
"Given enough eyeballs, all bugs are shallow" E. S. Raymond