[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1447390418.22599.34.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Thu, 12 Nov 2015 20:53:38 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Johannes Weiner <hannes@...xchg.org>
Cc: David Miller <davem@...emloft.net>,
Andrew Morton <akpm@...ux-foundation.org>,
Vladimir Davydov <vdavydov@...tuozzo.com>,
Tejun Heo <tj@...nel.org>, Michal Hocko <mhocko@...e.cz>,
netdev@...r.kernel.org, linux-mm@...ck.org,
cgroups@...r.kernel.org, linux-kernel@...r.kernel.org,
kernel-team@...com
Subject: Re: [PATCH 08/14] net: tcp_memcontrol: sanitize tcp memory
accounting callbacks
On Thu, 2015-11-12 at 18:41 -0500, Johannes Weiner wrote:
> @@ -711,6 +705,12 @@ static inline void mem_cgroup_wb_stats(struct bdi_writeback *wb,
> struct sock;
> void sock_update_memcg(struct sock *sk);
> void sock_release_memcg(struct sock *sk);
> +bool mem_cgroup_charge_skmem(struct cg_proto *proto, unsigned int nr_pages);
> +void mem_cgroup_uncharge_skmem(struct cg_proto *proto, unsigned int nr_pages);
> +static inline bool mem_cgroup_under_socket_pressure(struct cg_proto *proto)
> +{
> + return proto->memory_pressure;
> +}
> #endif /* CONFIG_INET && CONFIG_MEMCG_KMEM */
>
> #ifdef CONFIG_MEMCG_KMEM
> diff --git a/include/net/sock.h b/include/net/sock.h
> index 2eefc99..8cc7613 100644
> --- a/include/net/sock.h
> +++ b/include/net/sock.h
> @@ -1126,8 +1126,8 @@ static inline bool sk_under_memory_pressure(const struct sock *sk)
> if (!sk->sk_prot->memory_pressure)
> return false;
>
> - if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
> - return !!sk->sk_cgrp->memory_pressure;
> + if (mem_cgroup_sockets_enabled && sk->sk_cgrp &&
> + mem_cgroup_under_socket_pressure(sk->sk_cgrp))
>
> return !!*sk->sk_prot->memory_pressure;
> }
This looks wrong ?
if (A && B && C)
return !!*sk->sk_prot->memory_pressure;
<compiler should eventually barf,
as this function should not return void>
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists