Messages in this thread | | | Date | Fri, 18 Jan 2008 20:36:58 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH 1/5] x86: Change size of node ids from u8 to u16 fixup |
| |
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
| |