From patchwork Wed Jun 27 22:16:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shakeel Butt X-Patchwork-Id: 10492769 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7D17E602B3 for ; Wed, 27 Jun 2018 22:17:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7B4722A001 for ; Wed, 27 Jun 2018 22:17:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6EE7C2A02E; Wed, 27 Jun 2018 22:17:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 016592A001 for ; Wed, 27 Jun 2018 22:17:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF2D76B000A; Wed, 27 Jun 2018 18:16:59 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EA2626B000C; Wed, 27 Jun 2018 18:16:59 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D6CD96B000D; Wed, 27 Jun 2018 18:16:59 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf0-f198.google.com (mail-pf0-f198.google.com [209.85.192.198]) by kanga.kvack.org (Postfix) with ESMTP id 9475F6B000A for ; Wed, 27 Jun 2018 18:16:59 -0400 (EDT) Received: by mail-pf0-f198.google.com with SMTP id j25-v6so1649849pfi.20 for ; Wed, 27 Jun 2018 15:16:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id; bh=vt/asKPxANT7pXBKJwL4AGXXdhdY3QWBTWUSJGPy7c4=; b=inGZnOP/FDSNi8r+kH6zq+Luc4Cv077jQrUPzavJApiIT2a5zHLKa0v0NOeYBCx4Ws 274E/saGf72hlCXkaQqzfFX0PmHXcwRo5tcI+3cotPbjGjzNVN8VcqAZg9NH/STjWJ3i e4ajGQMbw/54KckDmKGkO+MmLDMycSxry6n1uJZWVuuPXSwIy95bHqT/tvQp5tv2lJbQ quNlSDfBFWfEfsnVMJVwyslgzRDNXpggJdSZNjKDRqmTfof+8b9heeP8yBG/VK+z39Nw 0DKxroxhK3az6PWIP2BWs7sqZuyZyx1iySgYzEN6FZXLPce6VJmCGe0b2CIMzoxAhLRh bigQ== X-Gm-Message-State: APt69E2JIC2WIJq9cQZ0KD0w8luG46iT5mmr/oHFEHfB37uoqE4Recyg fe0JcRqvqeuuQbe8ZlqVArcPCLLWFKAfpTTMD0SCuZJ7oEohcXGQF8pPV6bJLl+6PKnYEtZbSc1 OmGhZjkJPtL7X04wO9DmQDAUWeZpc9/mTYHcsaSDhv8J7KPegsbPG5I37jLt9fDP/9gAF2p1MJP DK8aTQkve/tgrnMgAX/yS1vGX29VqTVjSAXqLV9xQFC1DOsDyKUYJUQ9/il2pCllUGauzs2iifJ iHdiELlBuNjEnwOYIZVXDXZgXJ2sYUB2FfOg7qHrgQOKr6MltKqq5D3y66zC+2VUjO2FZQXPfmS Az8Oll16y1TrpQdSyzUFwUTgdC2b8GxhJXdQfYstvNe4AyQuYgqKeV38pmXXD5Ve4AUVM2ZrYrz M X-Received: by 2002:a17:902:3281:: with SMTP id z1-v6mr7952345plb.226.1530137819300; Wed, 27 Jun 2018 15:16:59 -0700 (PDT) X-Received: by 2002:a17:902:3281:: with SMTP id z1-v6mr7952313plb.226.1530137818643; Wed, 27 Jun 2018 15:16:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530137818; cv=none; d=google.com; s=arc-20160816; b=gSAvkDvvC+czjmNV21aXwcTXO8ybYUd+8veDHeSLV+mTVWdB54u7RwOko5ugmtw22u h9LTdPxiNl3ayi+xRGJuGyPk39PltUvU5FuSEvPuSXJ+vb4s0BFeqP4hf/1olAcNz3C2 ZT4ib1K3uJ8nX7qpZE39rUzjLiHUgHmgeSvoPvpiNKNk6QLnytbKHoTeejPukFdayeOG 9zKjnelNZ10cPfV21UWio2OFrs2GMI8jYzgvoq9Qt21SZhZWJ+sE8p/uv2EMN6N7bopU jep70QLORzZVK7lpsmMXM2AaVYhMHRQQuX3hRtLxqGpTDNv2nTFrHpzrgnDj/CdfWeME qgHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=vt/asKPxANT7pXBKJwL4AGXXdhdY3QWBTWUSJGPy7c4=; b=aEwyGvmuQ+hbhYDaLrJeUMab1uIfbm8SeoKS2y3c3pU4aa/GYC49+5d2EaX9nvvQyz E4Xkbkt09EnYh1onsCYpKnQOU7+d8Xg+m0ofFvZpdgS+7n8Ru4b6f6SFNibzEI7n6Sb/ EFASVwP9thh2gnY6a3WuTWtbZNQDLVxva2//Ujkre5e1dMiOas7zY4mtq5gocZYi3KgF D10OiPfszfAmSm60GbYGtdAAQLG0qs5ejc1rQnEbiZjkzWH3TVMcdQ+CZEKiVj6govwC ur1oPUfygZpc07isPYmBrnyYYnyMNKFVZn7Is50eZtRi1qdWK630i36oYi2oG50xD/ME PtFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=DtDdXzfP; spf=pass (google.com: domain of shakeelb@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=shakeelb@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b35-v6sor1665532plh.58.2018.06.27.15.16.58 for (Google Transport Security); Wed, 27 Jun 2018 15:16:58 -0700 (PDT) Received-SPF: pass (google.com: domain of shakeelb@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=DtDdXzfP; spf=pass (google.com: domain of shakeelb@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=shakeelb@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=vt/asKPxANT7pXBKJwL4AGXXdhdY3QWBTWUSJGPy7c4=; b=DtDdXzfPTlUBJ8OvQXUC7BO1t4tQ+S0FtqRrh8UXgFhw6/kLRciRAxyVk74eN2lYHh 0GGJsLiQf3CWvDo1Q7zSF0Oaj/bQlrT+UHAvrBooE1nfXwnVefb0XhEKBNgjMrY5UQtH x3v9xSdw+06n0bEbSAUObP95jBlNpLYs4fe/XjIhgkNJv39KpCTwlvoPPyb9chCsyU8C 9vu0ywfiAFXh/ENzkXYMLzc8MhulxjbwLuRJ39P+quovrNqGCtaeSHbMyS4FLKKK05zl 7vBx8ZZRe5CRYH+SNb+Iij4mMOw128QIvMXvRGolu+/CbO8r53svM+VXNkqJ+e4ErodO Jo8w== X-Google-Smtp-Source: ADUXVKLweQw8Cm9krohFrz3NIyiTHd6LZoHL/KB/eznP7EAHY4EJdLG5DH6wPUO6PV6Y594Z1HEChg== X-Received: by 2002:a17:902:7782:: with SMTP id o2-v6mr7890665pll.93.1530137817932; Wed, 27 Jun 2018 15:16:57 -0700 (PDT) Received: from shakeelb.mtv.corp.google.com ([2620:15c:2cb:201:3a5f:3a4f:fa44:6b63]) by smtp.gmail.com with ESMTPSA id r86-v6sm9641967pfi.165.2018.06.27.15.16.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Jun 2018 15:16:56 -0700 (PDT) From: Shakeel Butt To: Andrew Morton Cc: Johannes Weiner , Vladimir Davydov , Greg Thelen , Roman Gushchin , "David S . Miller" , Eric Dumazet , Kirill Tkhai , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt Subject: [PATCH v2] net, mm: account sock objects to kmemcg Date: Wed, 27 Jun 2018 15:16:42 -0700 Message-Id: <20180627221642.247448-1-shakeelb@google.com> X-Mailer: git-send-email 2.18.0.rc2.346.g013aa6912e-goog X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Currently the kernel accounts the memory for network traffic through mem_cgroup_[un]charge_skmem() interface. However the memory accounted only includes the truesize of sk_buff which does not include the size of sock objects. In our production environment, with opt-out kmem accounting, the sock kmem caches (TCP[v6], UDP[v6], RAW[v6], UNIX) are among the top most charged kmem caches and consume a significant amount of memory which can not be left as system overhead. So, this patch converts the kmem caches of all sock objects to SLAB_ACCOUNT. Signed-off-by: Shakeel Butt Suggested-by: Eric Dumazet Reviewed-by: Kirill Tkhai Reviewed-by: Eric Dumazet --- Changelog since v1: - Instead of specific sock kmem_caches, convert all sock kmem_caches to use SLAB_ACCOUNT. net/core/sock.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c index bcc41829a16d..9e8f65585b81 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3243,7 +3243,8 @@ static int req_prot_init(const struct proto *prot) rsk_prot->slab = kmem_cache_create(rsk_prot->slab_name, rsk_prot->obj_size, 0, - prot->slab_flags, NULL); + SLAB_ACCOUNT | prot->slab_flags, + NULL); if (!rsk_prot->slab) { pr_crit("%s: Can't create request sock SLAB cache!\n", @@ -3258,7 +3259,8 @@ int proto_register(struct proto *prot, int alloc_slab) if (alloc_slab) { prot->slab = kmem_cache_create_usercopy(prot->name, prot->obj_size, 0, - SLAB_HWCACHE_ALIGN | prot->slab_flags, + SLAB_HWCACHE_ALIGN | SLAB_ACCOUNT | + prot->slab_flags, prot->useroffset, prot->usersize, NULL); @@ -3281,6 +3283,7 @@ int proto_register(struct proto *prot, int alloc_slab) kmem_cache_create(prot->twsk_prot->twsk_slab_name, prot->twsk_prot->twsk_obj_size, 0, + SLAB_ACCOUNT | prot->slab_flags, NULL); if (prot->twsk_prot->twsk_slab == NULL)