]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm, arch: remove empty_bad_page*
authorMichal Hocko <mhocko@suse.com>
Thu, 16 Nov 2017 01:34:22 +0000 (17:34 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Nov 2017 02:21:03 +0000 (18:21 -0800)
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>
arch/frv/mm/init.c
arch/h8300/mm/init.c
arch/mips/include/asm/pgtable-64.h
arch/mn10300/kernel/head.S
arch/sh/kernel/head_64.S
arch/um/kernel/mem.c
include/linux/page-flags.h

index 328f0a2923168cfdfdce579d8e2504cc82d886aa..cf464100e83883c232bff4ff9ae18d511eafde08 100644 (file)
 #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);
index eeead51bed2db4dd080d7b7b32da869c0aee451c..015287ac8ce8b8c46d5a475b74714896db840b4b 100644 (file)
 #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);
 
index 67fe6dc5211c027a76af9aa54615c6ba53002e5b..0036ea0c717354b4b79689c896885a1a040e0097 100644 (file)
  * 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
        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
 /*
index 73e00fc78072d69623b5baf2e06f45ac4aa29a0b..0b15f759e0d26031cf3032633b00dae907da94de 100644 (file)
@@ -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
index defd851abefa5c48f5972c1f063256e3ef5fe985..cca491397a2836c2ec1653c70aaec7f522b7368d 100644 (file)
@@ -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
 
index e7437ec627108a263f105ad042f6529201d1775c..3c0e470ea6465872539a37ddab3229ab76eba868 100644 (file)
@@ -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;
 
index 584b14c774c181e85eac69be4f5a3ad037cb75d4..3ec44e27aa9dbe7b2e0cb26c21c97f8ad9ac97c3 100644 (file)
@@ -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