Messages in this thread Patch in this message | | | Date | Thu, 1 Aug 2002 17:12:39 -0700 | From | David Mosberger <> | Subject | adjust prefetch in free_one_pgd() |
| |
As per an earlier discussion on the lkml, the existing prefetch in free_one_pgd() is somewhat broken in that it prefetches further than PREFETCH_STRIDE bytes. The patch below fixes that. I'm told that this also performs better on x86 (it makes little difference on ia64, but it is also marginally better).
--david
diff -Nru a/mm/memory.c b/mm/memory.c --- a/mm/memory.c Thu Aug 1 17:02:14 2002 +++ b/mm/memory.c Thu Aug 1 17:02:14 2002 @@ -110,7 +110,7 @@ pmd = pmd_offset(dir, 0); pgd_clear(dir); for (j = 0; j < PTRS_PER_PMD ; j++) { - prefetchw(pmd+j+(PREFETCH_STRIDE/16)); + prefetchw(pmd + j + PREFETCH_STRIDE/sizeof(*pmd)); free_one_pmd(tlb, pmd+j); } pmd_free_tlb(tlb, pmd); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |