Skip to content

Commit

Permalink
x86: CPA avoid repeated lazy mmu flush
Browse files Browse the repository at this point in the history
Impact: Flush the lazy MMU only once

Pending mmu updates only need to be flushed once to bring the
in-memory pagetable state up to date.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner committed Feb 12, 2009
1 parent 34b0900 commit 7ad9de6
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions arch/x86/mm/pageattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,14 +575,6 @@ static int __change_page_attr(struct cpa_data *cpa, int primary)
address = cpa->vaddr[cpa->curpage];
else
address = *cpa->vaddr;

/*
* If we're called with lazy mmu updates enabled, the
* in-memory pte state may be stale. Flush pending updates to
* bring them up to date.
*/
arch_flush_lazy_mmu_mode();

repeat:
kpte = lookup_address(address, &level);
if (!kpte)
Expand Down Expand Up @@ -819,6 +811,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,

vm_unmap_aliases();

/*
* If we're called with lazy mmu updates enabled, the
* in-memory pte state may be stale. Flush pending updates to
* bring them up to date.
*/
arch_flush_lazy_mmu_mode();

cpa.vaddr = addr;
cpa.numpages = numpages;
cpa.mask_set = mask_set;
Expand Down

0 comments on commit 7ad9de6

Please sign in to comment.