diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-04-12 19:22:13 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-12 19:22:13 -0700 |
| commit | c2bd12474ca2323e84fa40eed61de4fc8311d4a3 (patch) | |
| tree | 4425ff736f37fc5873346120fcee7efb690aeecf /include | |
| parent | 24b5a6a3025278a1717798901f665114a1655831 (diff) | |
[PATCH] put ia32 pgds and pmds back into slab
From: William Lee Irwin III <wli@holomorphy.com>
This optimisation was reverted when I was removing all users of page->list.
Bill fixed it up, so unrevert it again.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/pgtable-3level.h | 2 | ||||
| -rw-r--r-- | include/asm-i386/pgtable.h | 30 |
2 files changed, 15 insertions, 17 deletions
diff --git a/include/asm-i386/pgtable-3level.h b/include/asm-i386/pgtable-3level.h index 0ca6393cbe4c..147acd8530e2 100644 --- a/include/asm-i386/pgtable-3level.h +++ b/include/asm-i386/pgtable-3level.h @@ -123,6 +123,4 @@ static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) #define pgoff_to_pte(off) ((pte_t) { _PAGE_FILE, (off) }) #define PTE_FILE_MAX_BITS 32 -extern struct kmem_cache_s *pae_pgd_cachep; - #endif /* _I386_PGTABLE_3LEVEL_H */ diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h index 1c0c38375349..1ba07e9421d8 100644 --- a/include/asm-i386/pgtable.h +++ b/include/asm-i386/pgtable.h @@ -21,15 +21,27 @@ #include <asm/bitops.h> #endif -extern pgd_t swapper_pg_dir[1024]; -extern void paging_init(void); +#include <linux/slab.h> +#include <linux/list.h> +#include <linux/spinlock.h> /* * ZERO_PAGE is a global shared page that is always zero: used * for zero-mapped memory areas etc.. */ -extern unsigned long empty_zero_page[1024]; #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page)) +extern unsigned long empty_zero_page[1024]; +extern pgd_t swapper_pg_dir[1024]; +extern kmem_cache_t *pgd_cache; +extern kmem_cache_t *pmd_cache; +extern spinlock_t pgd_lock; +extern struct page *pgd_list; + +void pmd_ctor(void *, kmem_cache_t *, unsigned long); +void pgd_ctor(void *, kmem_cache_t *, unsigned long); +void pgd_dtor(void *, kmem_cache_t *, unsigned long); +void pgtable_cache_init(void); +void paging_init(void); #endif /* !__ASSEMBLY__ */ @@ -41,20 +53,8 @@ extern unsigned long empty_zero_page[1024]; #ifndef __ASSEMBLY__ #ifdef CONFIG_X86_PAE # include <asm/pgtable-3level.h> - -/* - * Need to initialise the X86 PAE caches - */ -extern void pgtable_cache_init(void); - #else # include <asm/pgtable-2level.h> - -/* - * No page table caches to initialise - */ -#define pgtable_cache_init() do { } while (0) - #endif #endif |
