Re: [patch] memcg: pin execution to current cpu while draining stock

From: Michal Hocko
Date: Thu Aug 18 2011 - 01:56:59 EST


On Wed 17-08-11 21:49:27, Johannes Weiner wrote:
> Commit d1a05b6 'memcg: do not try to drain per-cpu caches without
> pages' added a drain_local_stock() call to a preemptible section.
>
> The draining task looks up the cpu-local stock twice to set the
> draining-flag, then to drain the stock and clear the flag again. If
> the task is migrated to a different CPU in between, noone will clear
> the flag on the first stock and it will be forever undrainable. Its
> charge can not be recovered and the cgroup can not be deleted anymore.
>
> Properly pin the task to the executing CPU while draining stocks.
>
> Signed-off-by: Johannes Weiner <jweiner@xxxxxxxxxx>
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx
> Cc: Michal Hocko <mhocko@xxxxxxx>

My fault, I didn't realize that drain_local_stock needs preemption
disabled. Sorry about that and good work, Johannes.

Acked-by: Michal Hocko <mhocko@xxxxxxx>
--
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
--
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/