[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v6 1/9] x86/xpti: avoid copying L4 page table contents when possible

On 10/04/18 11:00, Jan Beulich wrote:
>>>> On 10.04.18 at 09:58, <jgross@xxxxxxxx> 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 <jgross@xxxxxxxx>
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
>> ---
>> 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.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.