Re: [patch] mm: memcontrol: fold mem_cgroup_start_move()/mem_cgroup_end_move()

From: Johannes Weiner
Date: Thu Oct 23 2014 - 13:53:50 EST


On Thu, Oct 23, 2014 at 05:56:07PM +0200, Michal Hocko wrote:
> On Thu 23-10-14 10:42:07, Johannes Weiner wrote:
> > Having these functions and their documentation split out and somewhere
> > makes it harder, not easier, to follow what's going on.
> >
> > Inline them directly where charge moving is prepared and finished, and
> > put an explanation right next to it.
>
> I do not see the open coded version much more readable or maintainable to be
> honest. mem_cgroup_{start,end}_move are a good markers of the transaction.

What transaction, though? The names are really non-descript and they
actively hide what's going on. mem_cgroup_start_move() could mean
anything that prepares for moving and it doesn't seem out of place in
can_attach(). atomic_inc(&memcg->moving_account) on the other hand is
much more specific and nicely shows that we are currently forcing the
page stat update slow path way too early. There is no reason to make
it take the move_lock while we are still counting rss and precharging,
we are not actually moving charges and flipping pc->mem_cgroups yet.

[ I already have a patch to relocate it into mem_cgroup_move_charge(),
but let's let the dust in -mm settle a bit first. :-) ]
--
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/