Le 08/01/2018 à 07:33, [email protected] a écrit :
#if defined(XEN) pmap_tlb_shootnow(); #endifdoes that need to be defined(XEN) || defined(SVS) now?
Actually I didn't understand why XEN had this #ifdef in the first place. As far as SVS is concerned, it is not needed: each time an L4 slot is added (pmap_get_ptp) or removed (pmap_free_ptp), SVS only applies the change in the user page tables. The TLB is then flushed as usual: the slots that are stale in the pmap page tables are also stale in the user page tables, so the flush has the same effect regardless of whether the CPU is executing in userland or in the kernel. There are possible optimizations, like not sending TLB-flush IPIs to CPUs that are known to have performed a kernel<->user transition between the time when a page got removed from the page tables and the time we decided to flush the TLB as a result.
(does lots of that need to be domU || SVS?)
No. Maxime
