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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to