Messages in this thread | | | Date | Wed, 13 Feb 2013 13:56:17 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH v3 4/7] memcg: remove memcg from the reclaim iterators |
| |
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
| |