On Thu, 6 Feb 2014, Joonsoo Kim wrote: > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > I may be misunderstanding this patch and there's no help because there's no changelog. > diff --git a/include/linux/topology.h b/include/linux/topology.h > index 12ae6ce..a6d5438 100644 > --- a/include/linux/topology.h > +++ b/include/linux/topology.h > @@ -233,11 +233,20 @@ static inline int numa_node_id(void) > * Use the accessor functions set_numa_mem(), numa_mem_id() and cpu_to_mem(). > */ > DECLARE_PER_CPU(int, _numa_mem_); > +int _node_numa_mem_[MAX_NUMNODES]; > > #ifndef set_numa_mem > static inline void set_numa_mem(int node) > { > this_cpu_write(_numa_mem_, node); > + _node_numa_mem_[numa_node_id()] = node; > +} > +#endif > + > +#ifndef get_numa_mem > +static inline int get_numa_mem(int node) > +{ > + return _node_numa_mem_[node]; > } > #endif > > @@ -260,6 +269,7 @@ static inline int cpu_to_mem(int cpu) > static inline void set_cpu_numa_mem(int cpu, int node) > { > per_cpu(_numa_mem_, cpu) = node; > + _node_numa_mem_[numa_node_id()] = node; The intention seems to be that _node_numa_mem_[X] for a node X will return a node Y with memory that has the nearest distance? In other words, caching the value returned by local_memory_node(X)? That doesn't seem to be what it's doing since numa_node_id() is the node of the cpu that current is running on so this ends up getting initialized to whatever local_memory_node(cpu_to_node(cpu)) is for the last bit set in cpu_possible_mask. > } > #endif > > @@ -273,6 +283,13 @@ static inline int numa_mem_id(void) > } > #endif > > +#ifndef get_numa_mem > +static inline int get_numa_mem(int node) > +{ > + return node; > +} > +#endif > + > #ifndef cpu_to_mem > static inline int cpu_to_mem(int cpu) > { -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>