Hi, At 02:43 -0600 on 13 Apr (1523587395), Jan Beulich wrote: > >>> On 12.04.18 at 20:09, <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> > > --- > > V7: > > - add missing flag setting in shadow code > > This now needs an ack from Tim (now Cc-ed).
I may be misunderstanding how this flag is supposed to work, but this seems at first glance to do both too much and too little. The sl4 table that's being modified may be in use on any number of other pcpus, and might not be in use on the current pcpu. It looks like the do_mmu_update path issues a flush IPI; I think that the equivalent IPI would be a better place to hook if you can. Also I'm not sure why the flag needs to be set in l4e_propagate_from_guest() as well as shadow_set_l4e(). Can you elaborate? Cheers, Tim. _______________________________________________ Xen-devel mailing list Xenfirstname.lastname@example.org https://lists.xenproject.org/mailman/listinfo/xen-devel