On Tue, 17 Jun 2014, Andrew Morton wrote: > On Wed, 11 Jun 2014 14:15:11 -0500 Christoph Lameter <cl@xxxxxxxxx> wrote: > > > These functions allow to eliminate repeatedly used code in both > > SLAB and SLUB and also allow for the insertion of debugging code > > that may be needed in the development process. > > > > ... > > > > --- linux.orig/mm/slab.h 2014-06-10 14:18:11.506956436 -0500 > > +++ linux/mm/slab.h 2014-06-10 14:21:51.279893231 -0500 > > @@ -294,5 +294,18 @@ struct kmem_cache_node { > > > > }; > > > > +static inline struct kmem_cache_node *get_node(struct kmem_cache *s, int node) > > +{ > > + return s->node[node]; > > +} > > + > > +/* > > + * Iterator over all nodes. The body will be executed for each node that has > > + * a kmem_cache_node structure allocated (which is true for all online nodes) > > + */ > > +#define for_each_kmem_cache_node(__s, __node, __n) \ > > + for (__node = 0; __n = get_node(__s, __node), __node < nr_node_ids; __node++) \ > > + if (__n) > > Clueless newbs would be aided if this comment were to describe the > iterator's locking requirements. > There are no locking requirements, if the nodelist is initialized then we are good to go. -- 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>