>Dong, Eddie wrote:
>> Current shadow code do prefetch in FNAME(prefetch_page), but 
>it is only
>> used 
>> to choose shadow_notrap_nonpresent_pte or shadow_trap_nonpresent_pte.
>>
>> At least for L1 shadow, prefetching to get exact shadow L1 pte won't
>> cause 
>> performance regression (though handling time increases 
>slightly ) since
>> it 
>> won't generate a new write protected page.
>>
>>   
>I'm not sure that "slightly" is accurate, we need to fetch 512 or 1024 
>entries.  On the other hand, we have the benefit of batching 
>(a call to 
>get_user_pages() with n = 512 is much faster than 512 calls.  I think 

Yes, that means we have to copy the guest page to kernel buffer.

>that this will improve fork()s, but reduce performance with 
>sparsely-accessed memory maps, or with fork() followed by exec() 
>immediately.

I saw pf_fixed reduced. Specifically the shadow fault is reduced, but
overal perf gain with kernel build is minor.

>
>Only benchmarking can tell if it is an overall win.
>
>Xen limits the prefetch to a subset of the pages, maybe that's 
>a better 
>approach.
>
>
>> for those L2+ shadow page tables, we can do similar for those pointed
>> gfn which
>> is already shadowed
>
>I think L2s are very rare compared to L1 page tables, so any benefit 
>would be minor.
>
Agree it happens rare.
Eddie

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