From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2CC92C433EF for ; Mon, 13 Jun 2022 05:36:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232995AbiFMFgY (ORCPT ); Mon, 13 Jun 2022 01:36:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233350AbiFMFfe (ORCPT ); Mon, 13 Jun 2022 01:35:34 -0400 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 771F61261E for ; Sun, 12 Jun 2022 22:35:09 -0700 (PDT) Received: by mail-lf1-x132.google.com with SMTP id a15so7097461lfb.9 for ; Sun, 12 Jun 2022 22:35:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz-org.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:from:subject:to:cc :references:content-language:in-reply-to:content-transfer-encoding; bh=k8OfFf3zteeGV4NoXsW7mYQBRm/UT3jxMOm3SilJFI0=; b=QCCq2RzIkfRwteIiJbTj0Zzj5B4WLYxGewaFjiLQoUpyY6C9/Jm2Kois2pCwI52eRl UWOOFNQGDLwx1lliCTUM0VlyS1cfr43JGICQoEtjpMgxRtJrEiG+o2Aer69l3xQbvAMO 17aLlEwsCfIfrW9BO251dX2yEKDMW4oh9hb6fWYUavQ77/aSKnjKqBFskE9d7rWE3tRX f8vJkhfg1+am5rI9o/1tQmSF0l6xMThUXR/eOThEQ0riKpRPQhouMRKgLTnMtRUS5vGF b7jkhFk1BQHlwczmyMTCNI2SUCBYRAdsDib0POvKjJEOl2kbFpgAMhR4/4VnYLmAp7Bh bz/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:from :subject:to:cc:references:content-language:in-reply-to :content-transfer-encoding; bh=k8OfFf3zteeGV4NoXsW7mYQBRm/UT3jxMOm3SilJFI0=; b=6rF1GCHAvAL16WSRvHPpVaiLFRzjiyZUAhyBD9+P27myMKuYGkG+yygVoExtVrj/BI a9MFNzk1eOiiPaJnxbMF/e7M1awab8xJtvQ/jP9aWc/WtH4/51KYP3ZtJJRGSJT5ZAT4 SJv4x7H/RYkyCvvSN1Fj+x9nDUgvkiFhDJcfsl7q1RkScBMk5EbDicUMIwSAmxOjI6cR M9NPI80zV4UdOc6P4FGm27bRO2OxDP+Zae77jXev1ZilJP1RbSVUKJjjyufgO80c/MvD 8Ki9E7FcpjFh4Z3CHUEs2A376WUpuB3m99g79uSRDsPION/ZWPR/oqyOoXb+SjYJksR4 1Zfw== X-Gm-Message-State: AOAM531r9iMbxtw/kdY0dIFJ6i2cjhMGh99QUU2Hwi3KeaLDU77m0Dek IiD3q2czGCbYxIl1fV1df34Puw== X-Google-Smtp-Source: ABdhPJxlklyclOFDaFEDttumwb5rFLdd5oyZnDa4Qw5e8gcdQoX+swRc3jh5ZNuvaf2KIiJcxFlz/g== X-Received: by 2002:a05:6512:2252:b0:479:4fc9:f651 with SMTP id i18-20020a056512225200b004794fc9f651mr21452200lfu.247.1655098509032; Sun, 12 Jun 2022 22:35:09 -0700 (PDT) Received: from [192.168.1.65] ([46.188.121.129]) by smtp.gmail.com with ESMTPSA id i20-20020a056512341400b0047255d211c2sm849476lfr.241.2022.06.12.22.35.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Jun 2022 22:35:08 -0700 (PDT) Message-ID: <82caac31-1dbb-d3af-185a-6469c93f7a48@openvz.org> Date: Mon, 13 Jun 2022 08:35:07 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 From: Vasily Averin Subject: [PATCH mm v4 4/9] memcg: enable accounting for struct simple_xattr To: Andrew Morton Cc: kernel@openvz.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt , Roman Gushchin , =?UTF-8?Q?Michal_Koutn=c3=bd?= , Vlastimil Babka , Michal Hocko , Muchun Song , cgroups@vger.kernel.org References: <3e1d6eab-57c7-ba3d-67e1-c45aa0dfa2ab@openvz.org> Content-Language: en-US In-Reply-To: <3e1d6eab-57c7-ba3d-67e1-c45aa0dfa2ab@openvz.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org kernfs nodes are quite small kernel objects, however there are few scenarios where it consumes significant piece of all allocated memory: 1) creating a new netdevice allocates ~50Kb of memory, where ~10Kb was allocated for 80+ kernfs nodes. 2) cgroupv2 mkdir allocates ~60Kb of memory, ~10Kb of them are kernfs structures. 3) Shakeel Butt reports that Google has workloads which create 100s of subcontainers and they have observed high system overhead without memcg accounting of kernfs. Usually new kernfs node creates few other objects: Allocs Alloc Allocation number size -------------------------------------------- 1 + 128 (__kernfs_new_node+0x4d) kernfs node 1 + 88 (__kernfs_iattrs+0x57) kernfs iattrs 1 + 96 (simple_xattr_alloc+0x28) simple_xattr 1 32 (simple_xattr_set+0x59) 1 8 (__kernfs_new_node+0x30) '+' -- to be accounted This patch enables accounting for struct simple_xattr. Size of this structure depends on userspace and can grow over 4Kb. Signed-off-by: Vasily Averin Reviewed-by: Roman Gushchin Reviewed-by: Michal Koutný Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- fs/xattr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xattr.c b/fs/xattr.c index e8dd03e4561e..98dcf6600bd9 100644 --- a/fs/xattr.c +++ b/fs/xattr.c @@ -1001,7 +1001,7 @@ struct simple_xattr *simple_xattr_alloc(const void *value, size_t size) if (len < sizeof(*new_xattr)) return NULL; - new_xattr = kvmalloc(len, GFP_KERNEL); + new_xattr = kvmalloc(len, GFP_KERNEL_ACCOUNT); if (!new_xattr) return NULL; -- 2.36.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vasily Averin Subject: [PATCH mm v4 4/9] memcg: enable accounting for struct simple_xattr Date: Mon, 13 Jun 2022 08:35:07 +0300 Message-ID: <82caac31-1dbb-d3af-185a-6469c93f7a48@openvz.org> References: <3e1d6eab-57c7-ba3d-67e1-c45aa0dfa2ab@openvz.org> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz-org.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:from:subject:to:cc :references:content-language:in-reply-to:content-transfer-encoding; bh=k8OfFf3zteeGV4NoXsW7mYQBRm/UT3jxMOm3SilJFI0=; b=QCCq2RzIkfRwteIiJbTj0Zzj5B4WLYxGewaFjiLQoUpyY6C9/Jm2Kois2pCwI52eRl UWOOFNQGDLwx1lliCTUM0VlyS1cfr43JGICQoEtjpMgxRtJrEiG+o2Aer69l3xQbvAMO 17aLlEwsCfIfrW9BO251dX2yEKDMW4oh9hb6fWYUavQ77/aSKnjKqBFskE9d7rWE3tRX f8vJkhfg1+am5rI9o/1tQmSF0l6xMThUXR/eOThEQ0riKpRPQhouMRKgLTnMtRUS5vGF b7jkhFk1BQHlwczmyMTCNI2SUCBYRAdsDib0POvKjJEOl2kbFpgAMhR4/4VnYLmAp7Bh bz/A== Content-Language: en-US In-Reply-To: <3e1d6eab-57c7-ba3d-67e1-c45aa0dfa2ab-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org> List-ID: Content-Type: text/plain; charset="macroman" To: Andrew Morton Cc: kernel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Shakeel Butt , Roman Gushchin , =?UTF-8?Q?Michal_Koutn=c3=bd?= , Vlastimil Babka , Michal Hocko , Muchun Song , cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org a2VybmZzIG5vZGVzIGFyZSBxdWl0ZSBzbWFsbCBrZXJuZWwgb2JqZWN0cywgaG93ZXZlciB0aGVy ZSBhcmUgZmV3CnNjZW5hcmlvcyB3aGVyZSBpdCBjb25zdW1lcyBzaWduaWZpY2FudCBwaWVjZSBv ZiBhbGwgYWxsb2NhdGVkIG1lbW9yeToKCjEpIGNyZWF0aW5nIGEgbmV3IG5ldGRldmljZSBhbGxv Y2F0ZXMgfjUwS2Igb2YgbWVtb3J5LCB3aGVyZSB+MTBLYgogICB3YXMgYWxsb2NhdGVkIGZvciA4 MCsga2VybmZzIG5vZGVzLgoKMikgY2dyb3VwdjIgbWtkaXIgYWxsb2NhdGVzIH42MEtiIG9mIG1l bW9yeSwgfjEwS2Igb2YgdGhlbSBhcmUga2VybmZzCiAgIHN0cnVjdHVyZXMuCgozKSBTaGFrZWVs IEJ1dHQgcmVwb3J0cyB0aGF0IEdvb2dsZSBoYXMgd29ya2xvYWRzIHdoaWNoIGNyZWF0ZSAxMDBz CiAgIG9mIHN1YmNvbnRhaW5lcnMgYW5kIHRoZXkgaGF2ZSBvYnNlcnZlZCBoaWdoIHN5c3RlbSBv dmVyaGVhZAogICB3aXRob3V0IG1lbWNnIGFjY291bnRpbmcgb2Yga2VybmZzLgoKVXN1YWxseSBu ZXcga2VybmZzIG5vZGUgY3JlYXRlcyBmZXcgb3RoZXIgb2JqZWN0czoKCkFsbG9jcyAgQWxsb2Mg ICBBbGxvY2F0aW9uCm51bWJlciAgc2l6ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoxICAgKyAgMTI4ICAgICAgKF9fa2VybmZzX25ld19ub2RlKzB4NGQpICAg ICAgICBrZXJuZnMgbm9kZQoxICAgKyAgIDg4ICAgICAgKF9fa2VybmZzX2lhdHRycysweDU3KSAg ICAgICAgICBrZXJuZnMgaWF0dHJzCjEgICArICAgOTYgICAgICAoc2ltcGxlX3hhdHRyX2FsbG9j KzB4MjgpICAgICAgIHNpbXBsZV94YXR0cgoxICAgICAgIDMyICAgICAgKHNpbXBsZV94YXR0cl9z ZXQrMHg1OSkKMSAgICAgICA4ICAgICAgIChfX2tlcm5mc19uZXdfbm9kZSsweDMwKQoKJysnIC0t IHRvIGJlIGFjY291bnRlZAoKVGhpcyBwYXRjaCBlbmFibGVzIGFjY291bnRpbmcgZm9yIHN0cnVj dCBzaW1wbGVfeGF0dHIuIFNpemUgb2YgdGhpcwpzdHJ1Y3R1cmUgZGVwZW5kcyBvbiB1c2Vyc3Bh Y2UgYW5kIGNhbiBncm93IG92ZXIgNEtiLgoKU2lnbmVkLW9mZi1ieTogVmFzaWx5IEF2ZXJpbiA8 dnZzLUdFRkFRelpYN3I4ZG5tK3lST2ZFMEFAcHVibGljLmdtYW5lLm9yZz4KUmV2aWV3ZWQtYnk6 IFJvbWFuIEd1c2hjaGluIDxyb21hbi5ndXNoY2hpbi1meFVWWGZ0SUZEbnlHMXpFT2JYdGZBQHB1 YmxpYy5nbWFuZS5vcmc+ClJldmlld2VkLWJ5OiBNaWNoYWwgS291dG7DvSA8bWtvdXRueS1JQmk5 UkcvYjY3a0BwdWJsaWMuZ21hbmUub3JnPgpBY2tlZC1ieTogU2hha2VlbCBCdXR0IDxzaGFrZWVs Yi1ocElxc0Q0QUtsZlFUMGRaUitBbGZBQHB1YmxpYy5nbWFuZS5vcmc+ClJldmlld2VkLWJ5OiBN dWNodW4gU29uZyA8c29uZ211Y2h1bi1FQzhVeGw2TnB5ZGw1N01JZFJDRkRnQHB1YmxpYy5nbWFu ZS5vcmc+Ci0tLQogZnMveGF0dHIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZzL3hhdHRyLmMgYi9mcy94YXR0ci5j CmluZGV4IGU4ZGQwM2U0NTYxZS4uOThkY2Y2NjAwYmQ5IDEwMDY0NAotLS0gYS9mcy94YXR0ci5j CisrKyBiL2ZzL3hhdHRyLmMKQEAgLTEwMDEsNyArMTAwMSw3IEBAIHN0cnVjdCBzaW1wbGVfeGF0 dHIgKnNpbXBsZV94YXR0cl9hbGxvYyhjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUpCiAJ aWYgKGxlbiA8IHNpemVvZigqbmV3X3hhdHRyKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQluZXdfeGF0 dHIgPSBrdm1hbGxvYyhsZW4sIEdGUF9LRVJORUwpOworCW5ld194YXR0ciA9IGt2bWFsbG9jKGxl biwgR0ZQX0tFUk5FTF9BQ0NPVU5UKTsKIAlpZiAoIW5ld194YXR0cikKIAkJcmV0dXJuIE5VTEw7 CiAKLS0gCjIuMzYuMQoK