From: Dave Hansen <haveblue@us.ibm.com>
To: Jesse Barnes <jbarnes@sgi.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
Robert Picco <Robert.Picco@hp.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Matthew Dobson <colpatch@us.ibm.com>
Subject: Re: boot time node and memory limit options
Date: Wed, 17 Mar 2004 10:12:51 -0800 [thread overview]
Message-ID: <1079547171.5789.307.camel@nighthawk> (raw)
In-Reply-To: <20040317175134.GA23153@sgi.com>
On Wed, 2004-03-17 at 09:51, Jesse Barnes wrote:
> In some cases (ia64 for example) there are additional restrictions on
> each memory chunk. For example, the EFI memory map may describe a
> contiguous chunk of memory 28MB in size, but if your kernel page size
> was set to 64MB, you'd have to throw it away as unusable. Should that
> be dealt with in the arch independent code (i.e. is similar stuff done
> on other platforms?) or is it best to only add sections that are usable?
I was really hoping that this mechanism can be as stupid about what it
contains as possible. It's _just_ there to store the memory layout, and
wouldn't decide or implement policy for the architecture.
The "runt" section of memory should be added to the structures and
tracked. If, for some random reason, another 36MB of contiguous memory
got added to it later, you could start to think about coalescing it with
the runt from before.
The place to ignore the runt is in your architecture code that sets up
the page tables. Your arch code would, of course, be reading from this
layout code.
> > What I'd like to do is present a standard way for all of these
> > architectures to store the information that they need to record at boot
> > time, plus make something flexible enough that we can use it for stuff
> > at runtime when hotplug memory is involved.
>
> That would be great, what you have below seems sensible.
Mostly sensible. I definitely need to make sure that it can cover all
the cases. The "section" terminology should probably be removed so that
we can use it for CONFIG_NONLINEAR, and we need to think about what
happens when conflicting sections are added. For instance, it might be
valid to add RAM from 0-4GB, then reserve 3.75-4GB later on for PCI
space. Also, the code currently leaves "undefined" sections instead of
creating holes. That can be dealt with later.
Anyway, I'm not too attached to that code, it just realizes an idea that
I have.
> > The code I'd like to see go away from boot-time is anything that deals
> > with arch-specific structures like the e820, functions like
> > lmb_end_of_DRAM(), or any code that deals with zholes. I'd like to get
> > it to a point where we can do a mostly arch-independent mem=.
>
> So what you have here would be only for boot time setup, while
> CONFIG_NONLINEAR would be used in lieu of multiple pgdats per node or a
> virtual memmap in the case of intranode discontiguous memory?
Well, I was hoping that whatever we use at boot-time could stick around
for runtime. I'd like to get to the point where the interface for
bringing up boot-time memory is the same for hotplugging memory. (for
2.7, of course)
Just as with the CPU hotplug code, having separate code paths for
hotplug memory is asking for trouble, because the coverage will never be
as high as the generic boot case.
-- dave
next prev parent reply other threads:[~2004-03-17 18:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4057392A.8000602@hp.com>
2004-03-16 17:43 ` boot time node and memory limit options Jesse Barnes
2004-03-16 19:39 ` Martin J. Bligh
2004-03-17 16:15 ` Robert Picco
2004-03-17 16:36 ` Martin J. Bligh
2004-03-17 17:09 ` Dave Hansen
2004-03-17 17:51 ` Jesse Barnes
2004-03-17 18:12 ` Dave Hansen [this message]
2004-03-17 19:30 ` Robert Picco
2004-03-17 19:44 ` Martin J. Bligh
2004-03-17 20:01 ` Robert Picco
2004-03-17 20:58 ` Martin J. Bligh
2004-03-17 20:52 ` Dave Hansen
2004-03-16 17:07 Robert Picco
2004-03-16 17:34 ` Randy.Dunlap
[not found] ` <16471.48076.447058.132559@napali.hpl.hp.com>
2004-03-17 18:07 ` Robert Picco
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=1079547171.5789.307.camel@nighthawk \
--to=haveblue@us.ibm.com \
--cc=Robert.Picco@hp.com \
--cc=colpatch@us.ibm.com \
--cc=jbarnes@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.com \
/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