Re: [PATCH v4 5/6] KVM: MMU: combine guest pte read between walk and pte prefetch

Avi Kivity
2010-07-03T11:48:46Z

On 07/02/2010 08:03 PM, Marcelo Tosatti wrote:
> On Thu, Jul 01, 2010 at 09:55:56PM +0800, Xiao Guangrong wrote:
>
>> Combine guest pte read between guest pte walk and pte prefetch
>>
>> Signed-off-by: Xiao Guangrong<xiaoguangrong@cn.fujitsu.com>
>> ---
>> arch/x86/kvm/paging_tmpl.h | 48 ++++++++++++++++++++++++++++++-------------
>> 1 files changed, 33 insertions(+), 15 deletions(-)
>>
> Can't do this, it can miss invlpg:
>
> vcpu0 vcpu1
> read guest ptes
> modify guest pte
> invlpg
> instantiate stale
> guest pte
>
> See how the pte is reread inside fetch with mmu_lock held.
>

Note, this is fine if the pte is unsync, since vcpu0 will soon invlpg
it. It's only broken for sync ptes.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.