On 10/04/18 11:00, Jan Beulich wrote:
>>>> On 10.04.18 at 09:58, <jgr...@suse.com> wrote:
>> For mitigation of Meltdown the current L4 page table is copied to the
>> cpu local root page table each time a 64 bit pv guest is entered.
>>
>> Copying can be avoided in cases where the guest L4 page table hasn't
>> been modified while running the hypervisor, e.g. when handling
>> interrupts or any hypercall not modifying the L4 page table or %cr3.
>>
>> So add a per-cpu flag indicating whether the copying should be
>> performed and set that flag only when loading a new %cr3 or modifying
>> the L4 page table.  This includes synchronization of the cpu local
>> root page table with other cpus, so add a special synchronization flag
>> for that case.
>>
>> A simple performance check (compiling the hypervisor via "make -j 4")
>> in dom0 with 4 vcpus shows a significant improvement:
>>
>> - real time drops from 112 seconds to 103 seconds
>> - system time drops from 142 seconds to 131 seconds
>>
>> Signed-off-by: Juergen Gross <jgr...@suse.com>
> 
> Reviewed-by: Jan Beulich <jbeul...@suse.com>
> 
>> ---
>> V6:
>> - correct an error from rebasing to staging in assembly part
> 
> I have to admit that without digging out v5 I can't spot the
> change.

It is subtle, even more as patch 3 corrected the error again.

In restore_all_guest pv_cr3 must be tested for being zero before
testing whether to copy the root page table.


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to