public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <dave@linux.vnet.ibm.com>
To: Jeff Chua <jeff.chua.linux@gmail.com>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hugh@veritas.com>
Subject: Re: 2.6.32-rc3: low mem - only 378MB on x86_32 with 64GB. Why?
Date: Mon, 05 Oct 2009 12:15:43 -0700	[thread overview]
Message-ID: <1254770143.8175.1213.camel@nimitz> (raw)
In-Reply-To: <Pine.LNX.4.64.0910052334480.17655@boston.corp.fedex.com>

On Mon, 2009-10-05 at 23:57 +0800, Jeff Chua wrote:
> # with 64GB
>               total       used       free     shared    buffers     cached
> Mem:         63995        524      63470          0          4        365
> Low:           378         32        345
> High:        63616        492      63124
> -/+ buffers/cache:        154      63840
> Swap:        28003          0      28003
> 
> 
> Question is ... is there anyway to increase "low mem" without resorting to 
> migrating to 64bit? (Look... it only has 378MB total low mem vs 850MB on 
> the 4GB system). I've oracle installed on the 64GB system and it keeps 
> getting OOMs!

Heh.  You've really squeezed yourself into a bad situation.  Go get a
64-bit kernel... please.  You should be able to run 32-bit userspace
with a 64-bit kernel.  Do you have some 32-bit kernel component that you
are relying on?

The kernel has a structure called 'struct page'.  We allocate one of
those for each 4k page of physical memory on x86.  But, each 'struct
page' is/was 32-bytes (is it still??).  That means that on a 64GB
system, you've used at *least* 512MB of your 896MB of lowmem before
you're even out of early boot.  That's just one structure. 

The practical options are to use a different VMSPLIT or to use the RHEL
4/4 kernel.  The VMSPLIT option is in mainline and it will let chop up
the user/kernel virtual address boundary in different ways.  Looking at
arch/x86/Kconfig it doesn't look like mainline's code works with PAE.
It's theoretically possible, but not very practical.  I think I hacked
up a custom kernel for a customer to do this once a long time ago, but
it was painful.

The RHEL 4/4 kernel is a big fat hack.  I think they called it "hugemem"
or something.  It gives the kernel (and userspace) ~4GB of of vaddr
space each, but costs you some extra context switch time.  It lived in
-mm for a while and never made it to mainline.

I see it mentioned here:

	http://www.redhat.com/rhel/previous_versions/rhel3/

and I don't know if it was continued in other RHEL releases.

You can get around the 896MB limit, but it's painful.  You'll almost
certainly need a hacked kernel.

-- Dave


  parent reply	other threads:[~2009-10-05 19:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-05 15:57 2.6.32-rc3: low mem - only 378MB on x86_32 with 64GB. Why? Jeff Chua
2009-10-05 18:12 ` Linus Torvalds
     [not found]   ` <b6a2187b0910051715y4ee63503y148ba2d7e24cad8e@mail.gmail.com>
2009-10-06  0:30     ` Linus Torvalds
2009-10-06 10:06       ` Tvrtko Ursulin
2009-10-06 11:01         ` Frans Pop
2009-10-14 21:32           ` Lennart Sorensen
2009-10-06 12:59       ` David Woodhouse
2009-10-06 14:26         ` Linus Torvalds
2009-10-11  9:08           ` Benjamin Herrenschmidt
     [not found]       ` <b6a2187b0910052312o662642b2teded3d19548b9151@mail.gmail.com>
2009-10-06 14:35         ` Linus Torvalds
     [not found]           ` <b6a2187b0910080926x303d3c9em8f70632fb19b6509@mail.gmail.com>
2009-10-08 16:35             ` Dave Hansen
     [not found]           ` <b6a2187b0910090928r648169dax86178a3e8b8c2f21@mail.gmail.com>
2009-10-10 18:10             ` Valdis.Kletnieks
2009-10-10 18:37               ` Linus Torvalds
2009-10-11  9:06           ` Benjamin Herrenschmidt
2009-10-11 17:34             ` Linus Torvalds
2009-10-06 16:50   ` Yuhong Bao
2009-10-05 18:42 ` Byron Stanoszek
2009-10-05 19:15 ` Dave Hansen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-10-05 19:42 Tomasz Chmielewski
2009-10-05 20:31 ` Valdis.Kletnieks
     [not found] <drYiu-Pj-15@gated-at.bofh.it>
2009-10-05 20:05 ` Daniel J Blueman

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=1254770143.8175.1213.camel@nimitz \
    --to=dave@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=hugh@veritas.com \
    --cc=jeff.chua.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox