[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/p2m: Stop other vcpus using a nested p2m before clearing it
On 08/02/17 13:13, Jan Beulich wrote: >>>> On 07.02.17 at 19:48, <andrew.cooper3@xxxxxxxxxx> wrote: >> Until the IPI has completed, other processors might be running on this nested >> p2m object. clear_domain_page() does not guarantee to make 8-byte atomic >> updates, which means that a pagewalk on a remote processor might encounter a >> partial update. >> >> This is currently safe as other issues prevents a nested p2m ever being >> shared >> between two cpus (although this is contrary to the original plan). >> >> Setting p2m->np2m_base to P2M_BASE_EADDR before the IPI ensures that the >> IPI'd >> processors won't continue to use the flushed mappings. >> >> While modifying this function, remove all the trailing whitespace and tweak >> style in the affected areas. >> >> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > but ... > >> @@ -1633,19 +1635,21 @@ p2m_flush_table(struct p2m_domain *p2m) >> >> /* This is no longer a valid nested p2m for any address space */ >> p2m->np2m_base = P2M_BASE_EADDR; >> - >> - /* Zap the top level of the trie */ >> - mfn = pagetable_get_mfn(p2m_get_pagetable(p2m)); >> - clear_domain_page(mfn); >> >> /* Make sure nobody else is using this p2m table */ >> nestedhvm_vmcx_flushtlb(p2m); >> >> + /* Zap the top level of the trie */ > s/trie/tree/ here, as you touch it anyway? Trie here refers to the datastructure https://en.wikipedia.org/wiki/Trie which is the structure implemented by processor pagetables. It is more specific than just calling them trees. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |