Re: [PATCH] Introduce nodemask_t ADT [0/7]

From: Matthew Dobson
Date: Thu Mar 18 2004 - 19:22:11 EST


On Thu, 2004-03-18 at 15:32, Martin J. Bligh wrote:
> > On Thursday 18 March 2004 3:04 pm, Matthew Dobson wrote:
> >> do most anything you'd want to do with a nodemask. This stops us from
> >> open-coding nodemask operations, allows non-consecutive node numbering
> >> (ie: nodes don't have to be numbered 0...numnodes-1), gets rid of
> >> numnodes entirely (replaced with num_online_nodes()), and will
> >> facilitate the hotplugging of whole nodes.
> >
> > My hero! :) I think this has been needed for awhile, but now that I
> > think about it, it begs the question of what a node is. Is it a set
> > of CPUs and blocks of memory (that seems to be the most commonly used
> > definition in the code), just memory, just CPUs, or what? On sn2
> > hardware, we have the concept of a node without CPUs. And due to our
> > wacky I/O layout, we also have nodes without CPUs *or* memory! (The
> > I/O guys call these "ionodes".) And then of course, there are CPUs
> > that aren't particularly close to any memory (i.e. they have none of
> > their own, and have to go several hops and/or through other CPUs to
> > get at memory at all).
>
> I think the closest answer we have is that it's a grouping of cpus and
> memory, where either may be NULL.
>
> I/O isn't directly associated with a node, though it should fit into the
> topo infrastructure, to give distances from io buses to nodes (for which
> I think we currently use cpumasks, which is probably wrong in retrospect,
> but then life is tough and flawed ;-))
>
> M.

Yeah... We used cpumasks because that seemed like a good idea at the
time. Nodemasks may be a better choice now... We can write a quicky
inline function nodemask_to_cpumask() as well, to keep the current users
happy.

-Matt

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/