| Subject | Re: [PATCH 08/14] net: tcp_memcontrol: sanitize tcp memory accounting callbacks | From | Eric Dumazet <> | Date | Thu, 12 Nov 2015 20:53:38 -0800 |
| |
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> }
|