diff options
author | Robin Holt <holt@sgi.com> | 2005-11-11 10:35:43 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-11-11 12:37:29 -0500 |
commit | 837cd0bdf54dd954cd6aa43d250f75ab5db79617 (patch) | |
tree | ef28b91f1ac8c1c9f4244da9be1f994306ef4070 /include/asm-ia64/pgalloc.h | |
parent | d12eb7e11cf30c30f639b2093735af2ac177830b (diff) |
[IA64] 4-level page tables
This patch introduces 4-level page tables to ia64. I have run
some benchmarks and found nothing interesting. Performance has
consistently fallen within the noise range.
It also introduces a config option (setting the default to 3
levels). The config option prevents having 4 level page
tables with 64k base page size.
Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include/asm-ia64/pgalloc.h')
-rw-r--r-- | include/asm-ia64/pgalloc.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/asm-ia64/pgalloc.h b/include/asm-ia64/pgalloc.h index a5f214554afd..f2f233846476 100644 --- a/include/asm-ia64/pgalloc.h +++ b/include/asm-ia64/pgalloc.h | |||
@@ -86,6 +86,25 @@ static inline void pgd_free(pgd_t * pgd) | |||
86 | pgtable_quicklist_free(pgd); | 86 | pgtable_quicklist_free(pgd); |
87 | } | 87 | } |
88 | 88 | ||
89 | #ifdef CONFIG_PGTABLE_4 | ||
90 | static inline void | ||
91 | pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud) | ||
92 | { | ||
93 | pgd_val(*pgd_entry) = __pa(pud); | ||
94 | } | ||
95 | |||
96 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) | ||
97 | { | ||
98 | return pgtable_quicklist_alloc(); | ||
99 | } | ||
100 | |||
101 | static inline void pud_free(pud_t * pud) | ||
102 | { | ||
103 | pgtable_quicklist_free(pud); | ||
104 | } | ||
105 | #define __pud_free_tlb(tlb, pud) pud_free(pud) | ||
106 | #endif /* CONFIG_PGTABLE_4 */ | ||
107 | |||
89 | static inline void | 108 | static inline void |
90 | pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd) | 109 | pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd) |
91 | { | 110 | { |