lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080421185703.GA5022@damson.getinternet.no>
Date:	Mon, 21 Apr 2008 20:57:03 +0200
From:	Vegard Nossum <vegard.nossum@...il.com>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Thomas Gleixner <tglx@...utronix.de>,
	linux-kernel@...r.kernel.org
Subject: [PATCH] x86: don't ever allocate PTEs from lowmem

Hi,

This is needed for the kernel to boot properly without OOMing if PSE is
not present or disabled for some reason. It is the fix that you proposed for
the kmemcheck OOM-on-boot case. It would also be possible to check the PSE
feature before deciding where to allocate from, but I don't think it really
matters.

Looks ok?

(And yes, this DOES fix the OOM for me. :-D)


Vegard


>From a9ba2e2b1888fad824d3f73561460e2027b2a149 Mon Sep 17 00:00:00 2001
From: Vegard Nossum <vegard.nossum@...il.com>
Date: Mon, 21 Apr 2008 20:41:44 +0200
Subject: [PATCH] x86: don't ever allocate PTEs from lowmem

The PSE feature can be non-present for other reasons than having
CONFIG_DEBUG_PAGEALLOC=y and may OOM for those cases too. Therefore, always
try to allocate PTEs from the normal bootmem pool before falling back to
lowmem.

This is an update of:

commit 509a80c49c512ac88bd67b981145f925a306111b
Author: Ingo Molnar <mingo@...e.hu>
Date:   Wed Oct 17 18:04:34 2007 +0200

    x86: fix CONFIG_PAGEALLOC related boot hangs/OOMs

Signed-off-by: Vegard Nossum <vegard.nossum@...il.com>
---
 arch/x86/mm/init_32.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index ee1091a..d3a411b 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -91,9 +91,7 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
 	if (!(pmd_val(*pmd) & _PAGE_PRESENT)) {
 		pte_t *page_table = NULL;
 
-#ifdef CONFIG_DEBUG_PAGEALLOC
 		page_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);
-#endif
 		if (!page_table) {
 			page_table =
 				(pte_t *)alloc_bootmem_low_pages(PAGE_SIZE);
-- 
1.5.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ