From patchwork Tue Dec 8 15:30:10 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Weiner X-Patchwork-Id: 553960 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 0F7BC1402BD for ; Wed, 9 Dec 2015 02:38:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965130AbbLHPau (ORCPT ); Tue, 8 Dec 2015 10:30:50 -0500 Received: from gum.cmpxchg.org ([85.214.110.215]:48266 "EHLO gum.cmpxchg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752197AbbLHPat (ORCPT ); Tue, 8 Dec 2015 10:30:49 -0500 From: Johannes Weiner To: Andrew Morton Cc: linux-mm@kvack.org, netdev@vger.kernel.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 00/14] mm: memcontrol: account socket memory in unified hierarchy v4-RESEND Date: Tue, 8 Dec 2015 10:30:10 -0500 Message-Id: <1449588624-9220-1-git-send-email-hannes@cmpxchg.org> X-Mailer: git-send-email 2.6.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi Andrew, there was some build breakage in CONFIG_ combinations I hadn't tested in the last revision, so here is a fixed-up resend with minimal CC list. The only difference to the previous version is a section in memcontrol.h, but it accumulates throughout the series and would have been a pain to resolve on your end. So here goes. This also includes the review tags that Dave and Vlad had sent out in the meantime. Difference to the original v4: Documentation/kernel-parameters.txt | 4 + include/linux/memcontrol.h | 75 ++++++--- include/linux/vmpressure.h | 7 +- include/net/sock.h | 149 ++--------------- include/net/tcp.h | 5 +- include/net/tcp_memcontrol.h | 1 - mm/backing-dev.c | 2 +- mm/memcontrol.c | 302 ++++++++++++++++++++++------------ mm/vmpressure.c | 78 ++++++--- mm/vmscan.c | 10 +- net/core/sock.c | 78 ++------- net/ipv4/tcp.c | 3 +- net/ipv4/tcp_ipv4.c | 9 +- net/ipv4/tcp_memcontrol.c | 82 ++++----- net/ipv4/tcp_output.c | 7 +- net/ipv6/tcp_ipv6.c | 3 - 16 files changed, 391 insertions(+), 424 deletions(-) Acked-by: David S. Miller --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 9a19590..189f04d 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -702,14 +702,14 @@ static inline void mem_cgroup_wb_stats(struct bdi_writeback *wb, #endif /* CONFIG_CGROUP_WRITEBACK */ -#ifdef CONFIG_INET struct sock; -extern struct static_key_false memcg_sockets_enabled_key; -#define mem_cgroup_sockets_enabled static_branch_unlikely(&memcg_sockets_enabled_key) void sock_update_memcg(struct sock *sk); void sock_release_memcg(struct sock *sk); bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages); void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages); +#if defined(CONFIG_MEMCG) && defined(CONFIG_INET) +extern struct static_key_false memcg_sockets_enabled_key; +#define mem_cgroup_sockets_enabled static_branch_unlikely(&memcg_sockets_enabled_key) static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) { #ifdef CONFIG_MEMCG_KMEM @@ -724,7 +724,11 @@ static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) } #else #define mem_cgroup_sockets_enabled 0 -#endif /* CONFIG_INET */ +static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) +{ + return false; +} +#endif #ifdef CONFIG_MEMCG_KMEM extern struct static_key_false memcg_kmem_enabled_key; diff --git a/include/linux/vmpressure.h b/include/linux/vmpressure.h index a77b142..3347cc3 100644 --- a/include/linux/vmpressure.h +++ b/include/linux/vmpressure.h @@ -43,7 +43,7 @@ extern int vmpressure_register_event(struct mem_cgroup *memcg, extern void vmpressure_unregister_event(struct mem_cgroup *memcg, struct eventfd_ctx *eventfd); #else -static inline void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, +static inline void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, unsigned long scanned, unsigned long reclaimed) {} static inline void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio) {}