Re: [PATCH] remove empty node at boot time

From: KAMEZAWA Hiroyuki
Date: Sun Jul 09 2006 - 20:30:12 EST


On Fri, 7 Jul 2006 17:26:31 -0600
Bjorn Helgaas <bjorn.helgaas@xxxxxx> wrote:

> On Thursday 01 June 2006 05:04, KAMEZAWA Hiroyuki wrote:
> > Remove empty node -- a node which containes no cpu, no memory (and no I/O).
> > for ia64.
> >
> > This patch online nodes which has available resouces and avoid onlining
> > nodes which has only possible resouces.
>
> This patch breaks my HP rx8640 box. I suppose we have some unusual
> SRAT configuration. I'll debug it more next week. If there's something
> in particular I should look for, let me know.
>
> Comparing old (working) with new (broken), I see:
>
> - Number of logical nodes in system = 3
> + Number of logical nodes in system = 1
>
> This box has two cells. Each cell has four CPUs and some local memory.
> There is also an interleaved region that uses memory from both cells.
> I think firmware presents this as a logical node for each cell, plus
> one for the interleaved region.
>
> This box is configured with minimal local memory on each cell (8MB).
> That's less than a granule, so we should discard it, leaving two nodes
> with CPUs but no memory, and a third node with all the interleaved
> memory but no CPUs.
>

Then, your box has
node 0 : cpu x 4, small memory
node 1 : cpu x 4, small memory
node 2 : big memory.

if above node 0 and node 1 disappears, it looks there are some bugs in
cpu detection.

> + int i, cpu;
> + /* online node if a node has available cpus */
> + for (i = 0; i < srat_num_cpus; ++i)
> + for (cpu = 0; cpu < available_cpus; ++cpu)
> + if (smp_boot_data.cpu_phys_id[cpu] ==
> + node_cpuid[i].phys_id) {
> + node_set_online(node_cpuid[i].nid);
> + break;
> + }

Note:
smp_boot_data.cpu_phys_id[i] is set by acpi_parse_lsapic().
node_cpuid[j].phys_id is set by acpi_numa_processor_affinity_init().

-Kame




-
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/