[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] x86: enable RCU based table free
On Thu, Aug 24, 2017 at 11:22:58AM +0200, Vitaly Kuznetsov wrote: > diff --git a/arch/x86/include/asm/tlb.h b/arch/x86/include/asm/tlb.h > index c7797307fc2b..d43a7fcafee9 100644 > --- a/arch/x86/include/asm/tlb.h > +++ b/arch/x86/include/asm/tlb.h > @@ -15,4 +15,9 @@ > > #include <asm-generic/tlb.h> > > +static inline void __tlb_remove_table(void *table) > +{ > + free_page_and_swap_cache(table); > +} Most other archs have this in pgtable.h, only ARM* has it in tlb.h. And should we put a comment on explaining _why_ we have RCU_TABLE_FREE enabled? > #endif /* _ASM_X86_TLB_H */ > diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c > index 508a708eb9a6..218834a3e9ad 100644 > --- a/arch/x86/mm/pgtable.c > +++ b/arch/x86/mm/pgtable.c > @@ -56,7 +56,7 @@ void ___pte_free_tlb(struct mmu_gather *tlb, struct page > *pte) > { > pgtable_page_dtor(pte); > paravirt_release_pte(page_to_pfn(pte)); > - tlb_remove_page(tlb, pte); > + tlb_remove_table(tlb, pte); > } > > #if CONFIG_PGTABLE_LEVELS > 2 > @@ -72,21 +72,21 @@ void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) > tlb->need_flush_all = 1; > #endif > pgtable_pmd_page_dtor(page); > - tlb_remove_page(tlb, page); > + tlb_remove_table(tlb, page); > } > > #if CONFIG_PGTABLE_LEVELS > 3 > void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud) > { > paravirt_release_pud(__pa(pud) >> PAGE_SHIFT); > - tlb_remove_page(tlb, virt_to_page(pud)); > + tlb_remove_table(tlb, virt_to_page(pud)); > } > > #if CONFIG_PGTABLE_LEVELS > 4 > void ___p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d) > { > paravirt_release_p4d(__pa(p4d) >> PAGE_SHIFT); > - tlb_remove_page(tlb, virt_to_page(p4d)); > + tlb_remove_table(tlb, virt_to_page(p4d)); > } > #endif /* CONFIG_PGTABLE_LEVELS > 4 */ > #endif /* CONFIG_PGTABLE_LEVELS > 3 */ > -- > 2.13.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |