Re: [PATCH 08/14] net: tcp_memcontrol: sanitize tcp memory accounting callbacks
From: Eric Dumazet <hidden>
Date: 2015-11-13 04:53:43
Also in:
cgroups, linux-mm, lkml
On Thu, 2015-11-12 at 18:41 -0500, Johannes Weiner wrote:
quoted hunk ↗ jump to hunk
@@ -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_KMEMdiff --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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>