* [patch -mm] smaps: flush tlb only once for each vma
@ 2007-02-14 4:29 David Rientjes
0 siblings, 0 replies; only message in thread
From: David Rientjes @ 2007-02-14 4:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: Paul Mundt, Christoph Lameter, linux-kernel
Flush the entire user address space from the TLB for each VMA in the
task_struct list when clearing reference bits with /proc/pid/clear_refs.
It's more efficient than flushing each page individually depending on
pte_young().
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: David Rientjes <rientjes@google.com>
---
fs/proc/task_mmu.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -276,7 +276,6 @@ static void clear_refs_one_pmd(struct vm_area_struct *vma, pmd_t *pmd,
if (pte_young(ptent)) {
ptent = pte_mkold(ptent);
set_pte_at(vma->vm_mm, addr, pte, ptent);
- flush_tlb_page(vma, addr);
}
ClearPageReferenced(page);
}
@@ -358,6 +357,7 @@ void clear_refs_smap(struct mm_struct *mm)
for (vma = mm->mmap; vma; vma = vma->vm_next)
if (vma->vm_mm && !is_vm_hugetlb_page(vma))
for_each_pmd(vma, clear_refs_one_pmd, NULL);
+ flush_tlb_mm(mm);
up_read(&mm->mmap_sem);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-02-14 4:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-14 4:29 [patch -mm] smaps: flush tlb only once for each vma David Rientjes
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.