From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH] fix for-loop in sn_hwperf_geoid_to_cnode()
Date: Fri, 10 Mar 2006 17:57:28 +0000 [thread overview]
Message-ID: <20060310175728.GA18011@sgi.com> (raw)
In-Reply-To: <20060303150312.GA32225@sgi.com>
On Thu, Mar 09, 2006 at 10:57:09AM -0700, Bjorn Helgaas wrote:
> On Thursday 09 March 2006 09:12, Robin Holt wrote:
> > On Wed, Mar 08, 2006 at 04:55:45PM -0700, Bjorn Helgaas wrote:
> > > On Wednesday 08 March 2006 15:02, Dean Roe wrote:
> > > > Are you saying you *really* want a for_each_sn_cnode() macro? I guess
> > > > we can go that route if necessary...I just prefer the one-line change
> > > > rather than changing 4-5 files when we aren't really sure yet what the
> > > > final implementation will look like.
> > >
> > > I saw his response, but it wasn't clear to me what ACPI 3.0 is going
> > > to solve. Are you saying that with ACPI 3.0, you will be able to
> > > use for_each_node()?
> >
> > The node informatoin is stored in a single byte. With the introduction
> > of I/O only nodes, we can easily exceed the 512 node limit placed on
> > the byte size. ACPI 3.0 should raise that node limit to at least a
> > 16-bit word.
>
> I'm only trying to point out that you should be able to separate the
> for_each_XXX() interface from the current ACPI limit.
>
> > > If that's the case, my question is, why can't you use for_each_node()
> > > today, and use some interim hack to fill in node_possible_map?
> >
> > The node field size does not allow for it.
>
> Which node field doesn't allow it? for_each_node() uses the
> node_possible_mask bitmap, which can be any size you need.
If we extend node_possible_map, I think we would also have to extend several
other tables as well. For example, it is possibly that code that finds
a node in the node_possible_map may also expect to find the node in
the slit, node_to_cpu_mask, nid_to_pxm_map, ...
All of this could be done but it requires a lot more code & testing than
Deans's patch and it would still be a hack that would be deleted later when
we get the _real_ solution that involve BIOS & ACPI changes. I'd rather
minimize any new temporary hacks & focus on the longer term solution.
In fact, I posted part of what you are suggesting last week:
http://marc.theaimsgroup.com/?l=linux-ia64&m\x114133701316260&w=2
This patch extends the size of the node_possible_map. The patch adds an
option to support up to 1024 cpu/memory nodes on SN systems. The patch does
not yet address the problem of IO nodes. For that, we need ACPI3.0 and
a new BIOS. The patch, by necessity, is also SN specific until we get
to ACPI3.0.
This patch has not yet been accepted - hopefully a candidate for 2.6.17.
However, this is the first step in the direction that you are suggesting.
In the interim, we need a fix in 2.6.16 (we have problems on our large systems
without it) & I think Dean's patch should be ok. It is a 1-line fix,
is used in only one spot & is not likely to be copied to other places.
>
> > > If not, what "for_each_XXX" macro are you planning to use when
> > > you have ACPI 3.0?
> >
> > Not sure yet because ACPI 3.0 is still way off in the future. We
> > will know more when that time comes.
>
> If you think for_each_node() is the correct interface to use here,
> just use it, and make node_possible_mask large enough. That means
> you might need some glue code deal with the fact that ACPI 2.0
> can't populate the whole thing, but that's not a problem.
>
> If you think you need something other than for_each_node(), why
> not just take a stab at defining the correct interface now, and
> fix it later if you need to? I think that's better than putting
> in something that you *know* will need to be changed later.
I expect that once IO nodes are fully supported by ACPI, we will use the
standard "for_each_node" macros. It's possible that we may want to
introduce a "for_each_node_with_memory" macro (there is already a
"for_each_node_with_cpus" macro). A lot more design is required...
--- Jack
prev parent reply other threads:[~2006-03-10 17:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-03 15:03 [PATCH] fix for-loop in sn_hwperf_geoid_to_cnode() Dean Roe
2006-03-03 17:01 ` Luck, Tony
2006-03-03 19:49 ` Jack Steiner
2006-03-03 21:52 ` Luck, Tony
2006-03-06 16:28 ` Dean Roe
2006-03-06 16:32 ` Dean Roe
2006-03-06 17:35 ` Bjorn Helgaas
2006-03-08 22:02 ` Dean Roe
2006-03-08 23:55 ` Bjorn Helgaas
2006-03-09 16:12 ` Robin Holt
2006-03-09 17:57 ` Bjorn Helgaas
2006-03-10 17:57 ` Jack Steiner [this message]
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=20060310175728.GA18011@sgi.com \
--to=steiner@sgi.com \
--cc=linux-ia64@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox