Message ID | 1391674026-20092-2-git-send-email-iamjoonsoo.kim@lge.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Thu, 6 Feb 2014, Joonsoo Kim wrote: > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> > 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) > {
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; } #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) {
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>