All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Dave Hansen <dave.hansen@intel.com>,
	Yinghai Lu <yinghai@kernel.org>, Ingo Molnar <mingo@kernel.org>
Subject: [ 19/36] x86/mm: Fix boot crash with DEBUG_PAGE_ALLOC=y and more than 512G RAM
Date: Thu,  5 Sep 2013 13:27:48 -0700	[thread overview]
Message-ID: <20130905202704.537893512@linuxfoundation.org> (raw)
In-Reply-To: <20130905202702.289738686@linuxfoundation.org>

3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yinghai Lu <yinghai@kernel.org>

commit 527bf129f9a780e11b251cf2467dc30118a57d16 upstream.

Dave Hansen reported that systems between 500G and 600G RAM
crash early if DEBUG_PAGEALLOC is selected.

 > [    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
 > [    0.000000]  [mem 0x00000000-0x000fffff] page 4k
 > [    0.000000] BRK [0x02086000, 0x02086fff] PGTABLE
 > [    0.000000] BRK [0x02087000, 0x02087fff] PGTABLE
 > [    0.000000] BRK [0x02088000, 0x02088fff] PGTABLE
 > [    0.000000] init_memory_mapping: [mem 0xe80ee00000-0xe80effffff]
 > [    0.000000]  [mem 0xe80ee00000-0xe80effffff] page 4k
 > [    0.000000] BRK [0x02089000, 0x02089fff] PGTABLE
 > [    0.000000] BRK [0x0208a000, 0x0208afff] PGTABLE
 > [    0.000000] Kernel panic - not syncing: alloc_low_page: ran out of memory

It turns out that we missed increasing needed pages in BRK to
mapping initial 2M and [0,1M) when we switched to use the #PF
handler to set memory mappings:

 > commit 8170e6bed465b4b0c7687f93e9948aca4358a33b
 > Author: H. Peter Anvin <hpa@zytor.com>
 > Date:   Thu Jan 24 12:19:52 2013 -0800
 >
 >     x86, 64bit: Use a #PF handler to materialize early mappings on demand

Before that, we had the maping from [0,512M) in head_64.S, and we
can spare two pages [0-1M).  After that change, we can not reuse
pages anymore.

When we have more than 512M ram, we need an extra page for pgd page
with [512G, 1024g).

Increase pages in BRK for page table to solve the boot crash.

Reported-by: Dave Hansen <dave.hansen@intel.com>
Bisected-by: Dave Hansen <dave.hansen@intel.com>
Tested-by: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/1376351004-4015-1-git-send-email-yinghai@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/mm/init.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -78,8 +78,8 @@ __ref void *alloc_low_pages(unsigned int
 	return __va(pfn << PAGE_SHIFT);
 }
 
-/* need 4 4k for initial PMD_SIZE, 4k for 0-ISA_END_ADDRESS */
-#define INIT_PGT_BUF_SIZE	(5 * PAGE_SIZE)
+/* need 3 4k for initial PMD_SIZE,  3 4k for 0-ISA_END_ADDRESS */
+#define INIT_PGT_BUF_SIZE	(6 * PAGE_SIZE)
 RESERVE_BRK(early_pgt_alloc, INIT_PGT_BUF_SIZE);
 void  __init early_alloc_pgt_buf(void)
 {



  parent reply	other threads:[~2013-09-05 20:40 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 20:27 [ 00/36] 3.10.11-stable review Greg Kroah-Hartman
2013-09-05 20:27 ` [ 01/36] drm/nouveau/mc: fix race condition between constructor and request_irq() Greg Kroah-Hartman
2013-09-05 20:27 ` [ 02/36] jfs: fix readdir cookie incompatibility with NFSv4 Greg Kroah-Hartman
2013-09-05 20:27 ` [ 03/36] ALSA: hda - Fix NULL dereference with CONFIG_SND_DYNAMIC_MINORS=n Greg Kroah-Hartman
2013-09-05 20:27 ` [ 04/36] ALSA: hda - Add inverted digital mic fixup for Acer Aspire One Greg Kroah-Hartman
2013-09-05 20:27 ` [ 05/36] ALSA: opti9xx: Fix conflicting driver object name Greg Kroah-Hartman
2013-09-05 20:27 ` [ 06/36] powerpc: Work around gcc miscompilation of __pa() on 64-bit Greg Kroah-Hartman
2013-09-05 20:27 ` [ 07/36] powerpc: Dont Oops when accessing /proc/powerpc/lparcfg without hypervisor Greg Kroah-Hartman
2013-09-05 20:27 ` [ 08/36] powerpc/hvsi: Increase handshake timeout from 200ms to 400ms Greg Kroah-Hartman
2013-09-05 20:27 ` [ 09/36] SCSI: pm80xx: fix Adaptec 71605H hang Greg Kroah-Hartman
2013-09-05 20:27 ` [ 10/36] regmap: Add another missing header for !CONFIG_REGMAP stubs Greg Kroah-Hartman
2013-09-05 20:27 ` [ 11/36] timer_list: correct the iterator for timer_list Greg Kroah-Hartman
2013-09-05 20:27 ` [ 12/36] IPC: bugfix for msgrcv with msgtyp < 0 Greg Kroah-Hartman
2013-09-05 20:27 ` [ 13/36] drivers/base/memory.c: fix show_mem_removable() to handle missing sections Greg Kroah-Hartman
2013-09-05 20:27 ` [ 14/36] memcg: check that kmem_cache has memcg_params before accessing it Greg Kroah-Hartman
2013-09-05 20:27 ` [ 15/36] workqueue: cond_resched() after processing each work item Greg Kroah-Hartman
2013-09-05 20:27 ` [ 16/36] drm/vmwgfx: Split GMR2_REMAP commands if they are to large Greg Kroah-Hartman
2013-09-05 20:27 ` [ 17/36] drm/i915: ivb: fix edp voltage swing reg val Greg Kroah-Hartman
2013-09-05 20:27 ` [ 18/36] SUNRPC: Fix memory corruption issue on 32-bit highmem systems Greg Kroah-Hartman
2013-09-05 20:27 ` Greg Kroah-Hartman [this message]
2013-09-05 20:27 ` [ 20/36] ath9k_htc: Restore skb headroom when returning skb to mac80211 Greg Kroah-Hartman
2013-09-05 20:27 ` [ 21/36] ath9k: Enable PLL fix only for AR9340/AR9330 Greg Kroah-Hartman
2013-09-05 20:27 ` [ 22/36] mac80211: add missing channel context release Greg Kroah-Hartman
2013-09-05 20:27 ` [ 23/36] mac80211: add a flag to indicate CCK support for HT clients Greg Kroah-Hartman
2013-09-05 20:27 ` [ 24/36] iwl4965: fix rfkill set state regression Greg Kroah-Hartman
2013-09-05 20:27 ` [ 25/36] target: Fix trailing ASCII space usage in INQUIRY vendor+model Greg Kroah-Hartman
2013-09-05 20:27 ` [ 26/36] iscsi-target: Fix ImmediateData=Yes failure regression in >= v3.10 Greg Kroah-Hartman
2013-09-05 20:27 ` [ 27/36] iscsi-target: Fix iscsit_transport reference leak during NP thread reset Greg Kroah-Hartman
2013-09-05 20:27 ` [ 28/36] iscsi-target: Fix potential NULL pointer in solicited NOPOUT reject Greg Kroah-Hartman
2013-09-05 20:27 ` [ 29/36] mei: me: fix hardware reset flow Greg Kroah-Hartman
2013-09-05 20:27 ` [ 30/36] usb: acm gadget: Null termintate strings table Greg Kroah-Hartman
2013-09-05 20:28 ` [ 31/36] hwmon: (k10temp) Add support for Fam16h (Kabini) Greg Kroah-Hartman
2013-09-05 20:28 ` [ 32/36] ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT Greg Kroah-Hartman
2013-09-05 20:28 ` [ 33/36] drivers/misc/hpilo: Correct panic when an AUX iLO is detected Greg Kroah-Hartman
2013-09-05 20:28 ` [ 34/36] xen/arm: missing put_cpu in xen_percpu_init Greg Kroah-Hartman
2013-09-05 20:28 ` [ 35/36] imx-drm: imx-drm-core: Export imx_drm_encoder_get_mux_id Greg Kroah-Hartman
2013-09-05 20:28 ` [ 36/36] regmap: rbtree: Fix overlapping rbnodes Greg Kroah-Hartman
2013-09-05 22:59 ` [ 00/36] 3.10.11-stable review Guenter Roeck
2013-09-06 16:40   ` Greg Kroah-Hartman
2013-09-06 17:36 ` Shuah Khan
2013-09-06 18:45   ` Greg Kroah-Hartman
2013-09-06 18:48     ` Shuah Khan
2013-09-06 22:08 ` Olof Johansson
2013-09-06 22:20   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130905202704.537893512@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dave.hansen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.