[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 4/9] vmalloc: use plain pte_clear() for unmaps
From: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx> ptep_get_and_clear() is potentially moderately expensive (at least an atomic operation, or potentially a trap-and-fault when virtualized) so use a plain pte_clear(). Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx> --- mm/vmalloc.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index e95980a..67ce748 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -39,8 +39,9 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end) pte = pte_offset_kernel(pmd, addr); do { - pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte); + pte_t ptent = *pte; WARN_ON(!pte_none(ptent) && !pte_present(ptent)); + pte_clear(&init_mm, addr, pte); } while (pte++, addr += PAGE_SIZE, addr != end); } -- 1.7.3.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |