[Devel] Re: [PATCH] memcg: Do not open code accesses to res_counter members
Andrew Morton
akpm at linux-foundation.org
Thu Apr 5 16:53:35 PDT 2012
On Tue, 20 Mar 2012 20:53:44 +0400
Glauber Costa <glommer at parallels.com> wrote:
> We should use the acessor res_counter_read_u64 for that.
> Although a purely cosmetic change is sometimes better of delayed,
> to avoid conflicting with other people's work, we are starting to
> have people touching this code as well, and reproducing the open
> code behavior because that's the standard =)
>
> ...
>
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -3708,7 +3708,7 @@ move_account:
> goto try_to_free;
> cond_resched();
> /* "ret" should also be checked to ensure all lists are empty. */
> - } while (memcg->res.usage > 0 || ret);
> + } while (res_counter_read_u64(&memcg->res, RES_USAGE) > 0 || ret);
> out:
> css_put(&memcg->css);
> return ret;
> @@ -3723,7 +3723,7 @@ try_to_free:
> lru_add_drain_all();
> /* try to free all pages in this cgroup */
> shrink = 1;
> - while (nr_retries && memcg->res.usage > 0) {
> + while (nr_retries && res_counter_read_u64(&memcg->res, RES_USAGE) > 0) {
> int progress;
>
> if (signal_pending(current)) {
Actually this fixes bugs on 32-bit machines. Good luck trying to
demonstrate them at runtime though ;)
More information about the Devel
mailing list