On Wed, Jun 05, 2013 at 03:20:21PM -0700, Tejun Heo wrote: > Yo, > > On Wed, Jun 05, 2013 at 05:17:04PM -0400, Johannes Weiner wrote: > > That could be an advantage, yes. But keep in mind that every > > destruction has to perform this invalidation operation against the > > global root_mem_cgroup's nr_node * nr_zone * nr_priority_levels > > iterators, so you can't muck around forever, while possibly holding a > > lock at this level. It's not a hot path, but you don't want to turn > > it into one, either. > > nr_node tends to be pretty low in most cases, so it shouldn't be a > problem there but yeah with high enough nodes and high enough rate of Also, do we need to hold a lock? It doesn't have to be completely strict, so we might as well get away with something like, for_each_cached_pos() { if (hint == me) { /* simple clearing implementation, we prolly wanna push it forward */ cached = xchg(hint, NULL); if (cached) css_put(cached); } } It still scans the memory but wouldn't create any contention. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html