diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-05-08 10:27:27 +0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-05-09 10:35:00 +0400 |
commit | 16f1c746755836aa823658000493cdab8ce7b098 (patch) | |
tree | 32f534c771b69400839f5795f979c47eac51f923 /arch/powerpc/mm/slice.c | |
parent | b15f792fafb7e0524907ddd9e035d73dddeed89c (diff) | |
download | linux-16f1c746755836aa823658000493cdab8ce7b098.tar.xz |
[POWERPC] Small fixes & cleanups in segment page size demotion
The code for demoting segments to 4K had some issues, like for example,
when using _PAGE_4K_PFN flag, the first CPU to hit it would do the
demotion, but other CPUs hitting the same page wouldn't properly flush
their SLBs if mmu_ci_restriction isn't set. There are also potential
issues with hash_preload not handling _PAGE_4K_PFN. All of these are
non issues on current hardware but might bite us in the future.
This patch thus fixes it by:
- Taking the test comparing the mm and current CPU context page
sizes to decide to flush SLBs out of the mmu_ci_restrictions test
since that can also be triggered by _PAGE_4K_PFN pages
- Due to the above being done all the time, demote_segment_4k
doesn't need update the context and flush the SLB
- demote_segment_4k can be static and doesn't need an EXPORT_SYMBOL
- Making hash_preload ignore anything that has either _PAGE_4K_PFN
or _PAGE_NO_CACHE set, thus avoiding duplication of the complicated
logic in hash_page() (and possibly making hash_preload a little bit
faster for the normal case).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/mm/slice.c')
0 files changed, 0 insertions, 0 deletions