mm, arch: remove empty_bad_page*
empty_bad_page() and empty_bad_pte_table() seem to be relics from old days which is not used by any code for a long time. I have tried to find when exactly but this is not really all that straightforward due to many code movements - traces disappear around 2.4 times. Anyway no code really references neither empty_bad_page nor empty_bad_pte_table. We only allocate the storage which is not used by anybody so remove them. Link: http://lkml.kernel.org/r/20171004150045.30755-1-mhocko@kernel.org Signed-off-by: Michal Hocko <mhocko@suse.com> Acked-by: Ralf Baechle <ralf@linus-mips.org> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: David Howells <dhowells@redhat.com> Cc: Rich Felker <dalias@libc.org> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a2e1673172
commit
8745808fda
|
@ -42,21 +42,9 @@
|
|||
#undef DEBUG
|
||||
|
||||
/*
|
||||
* BAD_PAGE is the page that is used for page faults when linux
|
||||
* is out-of-memory. Older versions of linux just did a
|
||||
* do_exit(), but using this instead means there is less risk
|
||||
* for a process dying in kernel mode, possibly leaving a inode
|
||||
* unused etc..
|
||||
*
|
||||
* BAD_PAGETABLE is the accompanying page-table: it is initialized
|
||||
* to point to BAD_PAGE entries.
|
||||
*
|
||||
* ZERO_PAGE is a special page that is used for zero-initialized
|
||||
* data and COW.
|
||||
*/
|
||||
static unsigned long empty_bad_page_table;
|
||||
static unsigned long empty_bad_page;
|
||||
|
||||
unsigned long empty_zero_page;
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
|
||||
|
@ -72,8 +60,6 @@ void __init paging_init(void)
|
|||
unsigned long zones_size[MAX_NR_ZONES] = {0, };
|
||||
|
||||
/* allocate some pages for kernel housekeeping tasks */
|
||||
empty_bad_page_table = (unsigned long) alloc_bootmem_pages(PAGE_SIZE);
|
||||
empty_bad_page = (unsigned long) alloc_bootmem_pages(PAGE_SIZE);
|
||||
empty_zero_page = (unsigned long) alloc_bootmem_pages(PAGE_SIZE);
|
||||
|
||||
memset((void *) empty_zero_page, 0, PAGE_SIZE);
|
||||
|
|
|
@ -40,20 +40,9 @@
|
|||
#include <asm/sections.h>
|
||||
|
||||
/*
|
||||
* BAD_PAGE is the page that is used for page faults when linux
|
||||
* is out-of-memory. Older versions of linux just did a
|
||||
* do_exit(), but using this instead means there is less risk
|
||||
* for a process dying in kernel mode, possibly leaving a inode
|
||||
* unused etc..
|
||||
*
|
||||
* BAD_PAGETABLE is the accompanying page-table: it is initialized
|
||||
* to point to BAD_PAGE entries.
|
||||
*
|
||||
* ZERO_PAGE is a special page that is used for zero-initialized
|
||||
* data and COW.
|
||||
*/
|
||||
static unsigned long empty_bad_page_table;
|
||||
static unsigned long empty_bad_page;
|
||||
unsigned long empty_zero_page;
|
||||
|
||||
/*
|
||||
|
@ -78,8 +67,6 @@ void __init paging_init(void)
|
|||
* Initialize the bad page table and bad page to point
|
||||
* to a couple of allocated pages.
|
||||
*/
|
||||
empty_bad_page_table = (unsigned long)alloc_bootmem_pages(PAGE_SIZE);
|
||||
empty_bad_page = (unsigned long)alloc_bootmem_pages(PAGE_SIZE);
|
||||
empty_zero_page = (unsigned long)alloc_bootmem_pages(PAGE_SIZE);
|
||||
memset((void *)empty_zero_page, 0, PAGE_SIZE);
|
||||
|
||||
|
|
|
@ -31,12 +31,7 @@
|
|||
* tables. Each page table is also a single 4K page, giving 512 (==
|
||||
* PTRS_PER_PTE) 8 byte ptes. Each pud entry is initialized to point to
|
||||
* invalid_pmd_table, each pmd entry is initialized to point to
|
||||
* invalid_pte_table, each pte is initialized to 0. When memory is low,
|
||||
* and a pmd table or a page table allocation fails, empty_bad_pmd_table
|
||||
* and empty_bad_page_table is returned back to higher layer code, so
|
||||
* that the failure is recognized later on. Linux does not seem to
|
||||
* handle these failures very well though. The empty_bad_page_table has
|
||||
* invalid pte entries in it, to force page faults.
|
||||
* invalid_pte_table, each pte is initialized to 0.
|
||||
*
|
||||
* Kernel mappings: kernel mappings are held in the swapper_pg_table.
|
||||
* The layout is identical to userspace except it's indexed with the
|
||||
|
@ -175,7 +170,6 @@
|
|||
printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e))
|
||||
|
||||
extern pte_t invalid_pte_table[PTRS_PER_PTE];
|
||||
extern pte_t empty_bad_page_table[PTRS_PER_PTE];
|
||||
|
||||
#ifndef __PAGETABLE_PUD_FOLDED
|
||||
/*
|
||||
|
|
|
@ -433,14 +433,6 @@ ENTRY(swapper_pg_dir)
|
|||
ENTRY(empty_zero_page)
|
||||
.space PAGE_SIZE
|
||||
|
||||
.balign PAGE_SIZE
|
||||
ENTRY(empty_bad_page)
|
||||
.space PAGE_SIZE
|
||||
|
||||
.balign PAGE_SIZE
|
||||
ENTRY(empty_bad_pte_table)
|
||||
.space PAGE_SIZE
|
||||
|
||||
.balign PAGE_SIZE
|
||||
ENTRY(large_page_table)
|
||||
.space PAGE_SIZE
|
||||
|
|
|
@ -101,14 +101,6 @@ empty_zero_page:
|
|||
mmu_pdtp_cache:
|
||||
.space PAGE_SIZE, 0
|
||||
|
||||
.global empty_bad_page
|
||||
empty_bad_page:
|
||||
.space PAGE_SIZE, 0
|
||||
|
||||
.global empty_bad_pte_table
|
||||
empty_bad_pte_table:
|
||||
.space PAGE_SIZE, 0
|
||||
|
||||
.global fpu_in_use
|
||||
fpu_in_use: .quad 0
|
||||
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
/* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */
|
||||
unsigned long *empty_zero_page = NULL;
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
/* allocated in paging_init and unchanged thereafter */
|
||||
static unsigned long *empty_bad_page = NULL;
|
||||
|
||||
/*
|
||||
* Initialized during boot, and readonly for initializing page tables
|
||||
|
@ -146,7 +144,6 @@ void __init paging_init(void)
|
|||
int i;
|
||||
|
||||
empty_zero_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
|
||||
empty_bad_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
|
||||
for (i = 0; i < ARRAY_SIZE(zones_size); i++)
|
||||
zones_size[i] = 0;
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* Various page->flags bits:
|
||||
*
|
||||
* PG_reserved is set for special pages, which can never be swapped out. Some
|
||||
* of them might not even exist (eg empty_bad_page)...
|
||||
* of them might not even exist...
|
||||
*
|
||||
* The PG_private bitflag is set on pagecache pages if they contain filesystem
|
||||
* specific data (which is normally at page->private). It can be used by
|
||||
|
|
Loading…
Reference in a new issue