[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