* Maximum Physical Memory on 2.4 and ia32
@ 2002-12-02 1:08 Stephen Rothwell
2002-12-02 2:44 ` Andrew Morton
2002-12-02 7:04 ` William Lee Irwin III
0 siblings, 2 replies; 4+ messages in thread
From: Stephen Rothwell @ 2002-12-02 1:08 UTC (permalink / raw)
To: LKML
Hi all,
This may be a FAQ (but I did search).
Given this statement by RedHat:
"RAM Limitations on IA32
Red Hat Linux releases based on the 2.4 kernel -- including Red Hat Linux
7.1, 7.2, 7.3 and Red Hat Linux Advanced Server 2.1 -- support a maximum
of 16GB of RAM. Previous product announcements from Red Hat suggested that
Red Hat Linux 7.1 (and by extension, other releases based on the 2.4
kernel) supported up to 64GB of RAM. A more accurate statement is the
2.4-based kernels included in Red Hat Linux 7.1, 7.2, 7.3 and Red Hat
Linux Advanced Server 2.1 support the hardware extensions that support up
to 64GB of RAM. This is an important distinction: while the hardware will
indeed support up to 64GB of physical memory, the operating system design
limits the supported physical memory to approximately 16GB."
(http://www.redhat.com/services/techsupport/production/GSS_caveat.html)
What are the "operating system design limits" that restrict the amount of
supported memory to 16GB?
--
Cheers, Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Maximum Physical Memory on 2.4 and ia32
2002-12-02 1:08 Maximum Physical Memory on 2.4 and ia32 Stephen Rothwell
@ 2002-12-02 2:44 ` Andrew Morton
2002-12-02 6:48 ` Martin J. Bligh
2002-12-02 7:04 ` William Lee Irwin III
1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2002-12-02 2:44 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: LKML
Stephen Rothwell wrote:
>
> Hi all,
>
> This may be a FAQ (but I did search).
>
> Given this statement by RedHat:
>
> "RAM Limitations on IA32
>
> Red Hat Linux releases based on the 2.4 kernel -- including Red Hat Linux
> 7.1, 7.2, 7.3 and Red Hat Linux Advanced Server 2.1 -- support a maximum
> of 16GB of RAM. Previous product announcements from Red Hat suggested that
> Red Hat Linux 7.1 (and by extension, other releases based on the 2.4
> kernel) supported up to 64GB of RAM. A more accurate statement is the
> 2.4-based kernels included in Red Hat Linux 7.1, 7.2, 7.3 and Red Hat
> Linux Advanced Server 2.1 support the hardware extensions that support up
> to 64GB of RAM. This is an important distinction: while the hardware will
> indeed support up to 64GB of physical memory, the operating system design
> limits the supported physical memory to approximately 16GB."
>
> (http://www.redhat.com/services/techsupport/production/GSS_caveat.html)
> What are the "operating system design limits" that restrict the amount of
> supported memory to 16GB?
It's a practical limit. The mem_map array alone would consume 720 megabytes,
so you have no normal-zone memory left.
At 16G, mem_map[] consumes 180 megabytes and there's 540ish megabytes
of normal zone left for general use.
Even at this 20:1 highmem:lowmem ratio, the system will be struggling.
Any time you have normal-zone data structures which are pinned by
pages, the maths gets you in the end.
buffer_heads, pagetable pages, radix-tree nodes, pte_chains and inodes
are normal-zone data structures which, depending on the kernel version,
may be pinned into the normal zone by highmem pages.
In 2.5, with ext2's no-buffer-head option, shared pagetables, highpte,
with your fingers crossed and the wind in the south east, 32G might
be practical.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Maximum Physical Memory on 2.4 and ia32
2002-12-02 2:44 ` Andrew Morton
@ 2002-12-02 6:48 ` Martin J. Bligh
0 siblings, 0 replies; 4+ messages in thread
From: Martin J. Bligh @ 2002-12-02 6:48 UTC (permalink / raw)
To: Andrew Morton, Stephen Rothwell; +Cc: LKML
> It's a practical limit. The mem_map array alone would consume 720 megabytes,
> so you have no normal-zone memory left.
>
> At 16G, mem_map[] consumes 180 megabytes and there's 540ish megabytes
> of normal zone left for general use.
>
> Even at this 20:1 highmem:lowmem ratio, the system will be struggling.
> Any time you have normal-zone data structures which are pinned by
> pages, the maths gets you in the end.
>
> buffer_heads, pagetable pages, radix-tree nodes, pte_chains and inodes
> are normal-zone data structures which, depending on the kernel version,
> may be pinned into the normal zone by highmem pages.
>
> In 2.5, with ext2's no-buffer-head option, shared pagetables, highpte,
> with your fingers crossed and the wind in the south east, 32G might
> be practical.
32Gb was indeed what we've been working towards for 2.6, and we've
been running that on some workloads.
However, if you're willing to run with a 2:2 or even a 1:3 user:kernel
split instead of the default 3:1, you can get away with all sorts of
things, probably including 64Gb. I've got the hardware to build such
a beast, but haven't bothered yet (we have enough problems already ;-)).
Big databases won't like it, but other workloads without huge individual
processes (or shared mappings) will be fine.
M.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Maximum Physical Memory on 2.4 and ia32
2002-12-02 1:08 Maximum Physical Memory on 2.4 and ia32 Stephen Rothwell
2002-12-02 2:44 ` Andrew Morton
@ 2002-12-02 7:04 ` William Lee Irwin III
1 sibling, 0 replies; 4+ messages in thread
From: William Lee Irwin III @ 2002-12-02 7:04 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: LKML
On Mon, Dec 02, 2002 at 12:08:35PM +1100, Stephen Rothwell wrote:
> (http://www.redhat.com/services/techsupport/production/GSS_caveat.html)
> What are the "operating system design limits" that restrict the amount of
> supported memory to 16GB?
I've relayed this privately in less organized private discussions:
The design limitation is that a PTE is required to map a PAGE_SIZE
-sized region. The kernel allocation unit needs to be enlarged without
breaking ABI to reduce the fraction of physical memory reserved for
metadata i.e. mem_map[]. This is called page clustering.
Hugh Dickins implemented page clustering by creating a distinction
between PAGE_SIZE and MMUPAGE_SIZE then introducing an API for dealing
with vectors of PTE's. He implemented this for 2.4.6 and 2.4.7. His
patches are at ftp://ftp.veritas.com/linux/ In other environments this
is an optimization, not a requirement to be able to run, and so it
benefits all platforms.
There are, of course, other kinds of metadata generated at runtime that
may impose limitations on feasibility of workloads on large highmem boxen.
Bill
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-12-02 6:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-02 1:08 Maximum Physical Memory on 2.4 and ia32 Stephen Rothwell
2002-12-02 2:44 ` Andrew Morton
2002-12-02 6:48 ` Martin J. Bligh
2002-12-02 7:04 ` William Lee Irwin III
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).