From patchwork Fri Feb 10 15:47:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 13135957 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38AAFC636D4 for ; Fri, 10 Feb 2023 15:47:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BE9C16B0151; Fri, 10 Feb 2023 10:47:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B72DE6B0153; Fri, 10 Feb 2023 10:47:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9EC5C6B0154; Fri, 10 Feb 2023 10:47:55 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 892446B0151 for ; Fri, 10 Feb 2023 10:47:55 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 54B77121077 for ; Fri, 10 Feb 2023 15:47:55 +0000 (UTC) X-FDA: 80451812910.28.C8BCA33 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by imf15.hostedemail.com (Postfix) with ESMTP id 5FAF9A0018 for ; Fri, 10 Feb 2023 15:47:52 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="BQ/iZFen"; spf=pass (imf15.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676044072; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VfmMbVSSF03x8/EU0op7vkHjUSmnGjVyyVeSw2o/bMM=; b=RKJwYhtO/rFs7PIxSAKog7aSlWK8+G741v+BS+AjjuqvyGtItp1jEH7Yf8xXQGOtOJEomg NVMMdMlIr7Cw4gW22b/czv7vSVnoglcBTCb1OC127PUA9Is8yvZnYKnAmcjoRnIh8oL0HK /PLqDRaDlAudz1Avtv/UcGTHF/GHBD8= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="BQ/iZFen"; spf=pass (imf15.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676044072; a=rsa-sha256; cv=none; b=yUGLR5RcZatSWa7Z11F7fUoPVGy7pXO9H+CQUR8a6A5lZ2D5BY8N1fFdlLDug1tSptH0wb 4eVK6rp3ewFEVPZ0hRynJxun8F/SwyU99HYkHKuHGLr7oNyAnEiHGWqq7tNBaRN6Q+G5KO gmu6/zX6A65Hjp5CtdPKjbs3sKkUDL4= Received: by mail-pg1-f181.google.com with SMTP id 24so3973140pgt.7 for ; Fri, 10 Feb 2023 07:47:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VfmMbVSSF03x8/EU0op7vkHjUSmnGjVyyVeSw2o/bMM=; b=BQ/iZFengvaZKJ3dJwASQiyVaev+KFw4y51P7WZw4NwSnsRQG2uZNOGB3zBFW1QK0V mQx+3kvpRR5HnwelfEksbJwXc2u9EgEayhBNqtt+GwltUw9XeQz8hIUcZfpmzKK9sCdf kl/LTV3UiLSa3CvLJyeV5nTs30q6wPG1V2oyvHiZgKgYJjZl4Gf5skDU/Ey3PEt0xNYN cwaGROZ0gNhbe5wJ6q1scjleFZojcU35EPTGZHAF5Dwfb0knbSHm0dBe58k63hBXTLbY 5MsFuOdqnsx4YIOCLtjhZIicCUH2vtVHUl94uuX3LAX6uFXzti3HsqZA3o0YJuE1FX7o R01g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VfmMbVSSF03x8/EU0op7vkHjUSmnGjVyyVeSw2o/bMM=; b=H3xu9ODpgcjHAMj1FVBT5yXma8/LU4NLxWeVoKMpMJxd1jnLJwuNuDm7LjugylfScF U/9J+NAJzwwndcYAsKMW2ndYZdpuy0Isp5haEkPvnGEUakRRzHgI6uBbUBYe7xgUNJxp vVllAvRs9WdCdLfgAzPnNjYpgQ7L4LX52D5vbER3Cj+78hZB6lzgV89PO/C0G52q9P16 fJsos87o0hhWLP5ppU6dkpMCziHyEwDpJEh/MNnMVh2rMGZkaldADzvcEQaytbi7zAVH zeOiihe6aBtOmZlmc+N2WhwHt8CMltL/p6d3+WHfVKuopONXrTJC6KaYt24p6YWEVGQA CO1A== X-Gm-Message-State: AO0yUKXxoADQgHoxws9EP4I/IvwGLEYCxo1R4Jq/bpuJx/CBZPVSRj8b w7sYRD35t+hHWxQPB3PTFYE= X-Google-Smtp-Source: AK7set8zE9YvB+rlMwZ5YZqUvOjqk39b6oN+vCogBTsbbmo4FDAGcstJKaNToWrU7wwqvzFDSnO41w== X-Received: by 2002:a62:17cc:0:b0:5a7:9e27:faa2 with SMTP id 195-20020a6217cc000000b005a79e27faa2mr5314359pfx.4.1676044071214; Fri, 10 Feb 2023 07:47:51 -0800 (PST) Received: from vultr.guest ([2001:19f0:7001:2f6a:5400:4ff:fe4c:e050]) by smtp.gmail.com with ESMTPSA id t20-20020aa79394000000b005921c46cbadsm3520069pfe.99.2023.02.10.07.47.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 07:47:50 -0800 (PST) From: Yafang Shao To: tj@kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, kafai@fb.com, songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@google.com, haoluo@google.com, jolsa@kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, akpm@linux-foundation.org Cc: bpf@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Yafang Shao Subject: [PATCH bpf-next v2 1/4] mm: memcontrol: add new kernel parameter cgroup.memory=nobpf Date: Fri, 10 Feb 2023 15:47:31 +0000 Message-Id: <20230210154734.4416-2-laoar.shao@gmail.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230210154734.4416-1-laoar.shao@gmail.com> References: <20230210154734.4416-1-laoar.shao@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 5FAF9A0018 X-Stat-Signature: sstm6xnt6mdibiu651pedz56urhb8htg X-HE-Tag: 1676044072-599289 X-HE-Meta: U2FsdGVkX1+scT4Qm/45ZQOBfsCi+f5B2XbQB9xQ6pntDbvuKgfZ0heXjEcKsP43xizjtLq2BeHK5K5bc9CCjaLeG5xElPyF84B0u+TT6rcnEYhbtW1ZmHlB0PU6N5OeIPtu4VuIac2tX2GdWYx/OES9yjzs+t28BzWUl6oipUQ5R7GvGJca83ob2b60eCSIgexT1BJ/BQZky2ro4M2SduLgHVryqQQwNp5xllYNoh1vFFsJcgxD1DYnLPO9/xIONRmf30K9jQmGYIHTniRbn2bnsW6DIPyzE9XlltzAuJxBKu8ko5NxsuFfllqIws/iJg8Gr+yReQYTjll6hUZ5wmyVu8sslXFJyiyBxnNn5AxqiSrwHUjaOUAubt5usIgByOt5yyx9WZzksrw5zgbiFV6BcGRZmsBfErODeHF8CkVvZ7UkGqJ5up6Sjvql3rnoKQ5y3Eebun0eEE6hl4z/kaOQ82XO/6IMAkWDAzbGd4WaxGigpiEtkG7h2oZ1Id5R9XNd5FXXFKgZYsQJCbGXWRdUoD+Y4haGa58a7UAi0ygSsLOclXOR7N50Ie0EqKklRq9RmYi6KHtDP1bp3SNQPZ8XZJwmMqzZti+qITmeCfE8zFoMACVahPiMXOjwNwtlXzgVAh4nQFigVnil3wbuo1hIQHJSyEgw5yNiKLC2BjsRDTs5FEnQkyG+YubjcDa6zZ0mB7XMDSZbDRizhMDLkXLxXFqyJVgJeA7qJyU3luI5dkvHpjJvpvc6jZHu+I92yspqBdQZU2nNvVeR6virmbYpMc7tcyQzKhGpq9Fr/wDP9+Gd+D75qMMatnqUFzsisiXZwRaMFrX84QgT6wUMnZzbb5CiRmhWLdQHsDS/QXaCNhonJPKxY6NnwejYIJ6alHB+V9NDRiexT94fC2WOCIyQwISoiNogB+zmj9BofEsE6jaKBrojI/bH5dozQfxKBnHlgVDmyUMDg/YaztP xnH2O/D/ zsZWk/I6ofXb1d1+fdmc6dFEtDOlMOAIKmzuVzWxhw4kvXvqDdjKElDI72GQjfKo1z4CkPdEcGS6d7WUa1lnGmZ4PSgIe9Sj6n6D5qzvxFVThrTz3uCqLEO5oeJ+wceeWy7GcduhF7RiYjo8PXbEMX8FTxqocpky7g5wW/LWxkRKQIn6nGSwbQPY8ljLcNe6q/Xu5I/jVtmkN7G0I/P/zghjItlJNJUE1csxb4uV4Ll9NjZaOKKH+8M7KwF5sakwK7gjxrW6FRDVXiLXWP0j4fdmdQRwBhrDz27LRd2u7wS5VjvFP9KaXV/aR4hjO3T/+IxBXXcSEp3YMUFtRAlkxBkp+mAKTliGBitUmDvYmyUqxcw6IA6Bam02ODoH6oJznfL00dG52ikd0gszERU7hTyI4oOZdFLQunwjcVH1jrXE4eXmh79u3OzREEx0K0xXUjBirPeb0SoLBz9kwKOEB8tkyPUrAgIdpaJwKf4lmatH7MMxby4N+D9QLtuIJEqIrHeaiR6iIpOrsLWi6ivGmsT/o66f+JkrsgC+LjHDl3K2xkhw8Fip2KB58GY79JNXxrE9xr8NnG/kR29/QEbnvhp0Epe5/7ZbkECL7Sp0GhZpd+gA= 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: Add new kernel parameter cgroup.memory=nobpf to allow user disable bpf memory accounting. This is a preparation for the followup patch. Signed-off-by: Yafang Shao Acked-by: Johannes Weiner Acked-by: Roman Gushchin --- Documentation/admin-guide/kernel-parameters.txt | 1 + include/linux/memcontrol.h | 11 +++++++++++ mm/memcontrol.c | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 6cfa6e3..29fb41e 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -557,6 +557,7 @@ Format: nosocket -- Disable socket memory accounting. nokmem -- Disable kernel memory accounting. + nobpf -- Disable BPF memory accounting. checkreqprot= [SELINUX] Set initial checkreqprot flag value. Format: { "0" | "1" } diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index d3c8203..26d4bf2 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1751,6 +1751,12 @@ static inline void set_shrinker_bit(struct mem_cgroup *memcg, int obj_cgroup_charge(struct obj_cgroup *objcg, gfp_t gfp, size_t size); void obj_cgroup_uncharge(struct obj_cgroup *objcg, size_t size); +extern struct static_key_false memcg_bpf_enabled_key; +static inline bool memcg_bpf_enabled(void) +{ + return static_branch_likely(&memcg_bpf_enabled_key); +} + extern struct static_key_false memcg_kmem_enabled_key; static inline bool memcg_kmem_enabled(void) @@ -1829,6 +1835,11 @@ static inline struct obj_cgroup *get_obj_cgroup_from_page(struct page *page) return NULL; } +static inline bool memcg_bpf_enabled(void) +{ + return false; +} + static inline bool memcg_kmem_enabled(void) { return false; diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ab457f0..590526f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -89,6 +89,9 @@ /* Kernel memory accounting disabled? */ static bool cgroup_memory_nokmem __ro_after_init; +/* BPF memory accounting disabled? */ +static bool cgroup_memory_nobpf __ro_after_init; + #ifdef CONFIG_CGROUP_WRITEBACK static DECLARE_WAIT_QUEUE_HEAD(memcg_cgwb_frn_waitq); #endif @@ -348,6 +351,9 @@ static void memcg_reparent_objcgs(struct mem_cgroup *memcg, */ DEFINE_STATIC_KEY_FALSE(memcg_kmem_enabled_key); EXPORT_SYMBOL(memcg_kmem_enabled_key); + +DEFINE_STATIC_KEY_FALSE(memcg_bpf_enabled_key); +EXPORT_SYMBOL(memcg_bpf_enabled_key); #endif /** @@ -5362,6 +5368,11 @@ static struct mem_cgroup *mem_cgroup_alloc(void) if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket) static_branch_inc(&memcg_sockets_enabled_key); +#if defined(CONFIG_MEMCG_KMEM) + if (!cgroup_memory_nobpf) + static_branch_inc(&memcg_bpf_enabled_key); +#endif + return &memcg->css; } @@ -5446,6 +5457,11 @@ static void mem_cgroup_css_free(struct cgroup_subsys_state *css) if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && memcg->tcpmem_active) static_branch_dec(&memcg_sockets_enabled_key); +#if defined(CONFIG_MEMCG_KMEM) + if (!cgroup_memory_nobpf) + static_branch_dec(&memcg_bpf_enabled_key); +#endif + vmpressure_cleanup(&memcg->vmpressure); cancel_work_sync(&memcg->high_work); mem_cgroup_remove_from_trees(memcg); @@ -7310,6 +7326,8 @@ static int __init cgroup_memory(char *s) cgroup_memory_nosocket = true; if (!strcmp(token, "nokmem")) cgroup_memory_nokmem = true; + if (!strcmp(token, "nobpf")) + cgroup_memory_nobpf = true; } return 1; }