On Wed 13-02-13 11:34:59, Michal Hocko wrote: > On Tue 12-02-13 12:37:41, Johannes Weiner wrote: > > On Tue, Feb 12, 2013 at 06:12:16PM +0100, Michal Hocko wrote: > [...] > > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > > index 727ec39..31bb9b0 100644 > > > --- a/mm/memcontrol.c > > > +++ b/mm/memcontrol.c > > > @@ -144,8 +144,13 @@ struct mem_cgroup_stat_cpu { > > > }; > > > > > > struct mem_cgroup_reclaim_iter { > > > - /* last scanned hierarchy member with elevated css ref count */ > > > + /* > > > + * last scanned hierarchy member. Valid only if last_dead_count > > > + * matches memcg->dead_count of the hierarchy root group. > > > + */ > > > struct mem_cgroup *last_visited; > > > + unsigned int last_dead_count; > > > > Since we read and write this without a lock, I would feel more > > comfortable if this were a full word, i.e. unsigned long. That > > guarantees we don't see any partial states. > > OK. Changed. Although I though that int is read/modified atomically as > well if it is aligned to its size.
Ohh, I guess what was your concern. If last_dead_count was int then it would fit into the same full word slot with generation and so the parallel read-modify-update cycle could be an issue. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/