Re: [PATCH v3 4/7] memcg: remove memcg from the reclaim iterators

From: Michal Hocko
Date: Wed Feb 13 2013 - 07:56:27 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/