Re: [PATCH 1/5] x86: Change size of node ids from u8 to u16 fixup

From: David Rientjes
Date: Fri Jan 18 2008 - 23:38:36 EST


On Fri, 18 Jan 2008, Yinghai Lu wrote:

> > +#if MAX_NUMNODES > 256
> > +typedef u16 numanode_t;
> > +#else
> > +typedef u8 numanode_t;
> > +#endif
> > +
> > #endif /* _LINUX_NUMA_H */
>
> that is wrong, you can not change pxm_to_node_map from int to u8 or u16.
>

Yeah, NID_INVAL is negative so no unsigned type will work here,
unfortunately. And that reduces the intended savings of your change since
the smaller type can only be used with a smaller CONFIG_NODES_SHIFT.

> int acpi_map_pxm_to_node(int pxm)
> {
> int node = pxm_to_node_map[pxm];
>
> if (node < 0){
> if (nodes_weight(nodes_found_map) >= MAX_NUMNODES)
> return NID_INVAL;
> node = first_unset_node(nodes_found_map);
> __acpi_map_pxm_to_node(pxm, node);
> node_set(node, nodes_found_map);
> }
>
> return node;
> }
>
> node will will be always 255 or 65535
>

Right.

> please keep that to int.
>
> I got
> SART: PXM 0 -> APIC 0 -> Node 255
> SART: PXM 0 -> APIC 1 -> Node 255
> SART: PXM 1 -> APIC 2 -> Node 255
> SART: PXM 1 -> APIC 3 -> Node 255
>

I assume this is a typo and those proximity mappings are actually from the
SRAT.

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