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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BC62C433DB for ; Tue, 30 Mar 2021 10:20:57 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0F82C619AE for ; Tue, 30 Mar 2021 10:20:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0F82C619AE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 930ED6B0083; Tue, 30 Mar 2021 06:20:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8BA926B0085; Tue, 30 Mar 2021 06:20:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7346B6B0087; Tue, 30 Mar 2021 06:20:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0083.hostedemail.com [216.40.44.83]) by kanga.kvack.org (Postfix) with ESMTP id 53CF86B0083 for ; Tue, 30 Mar 2021 06:20:56 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 1CEDD441E for ; Tue, 30 Mar 2021 10:20:56 +0000 (UTC) X-FDA: 77976147312.26.F92078F Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf16.hostedemail.com (Postfix) with ESMTP id 5A5E180192D4 for ; Tue, 30 Mar 2021 10:20:54 +0000 (UTC) Received: by mail-pl1-f181.google.com with SMTP id d8so5920733plh.11 for ; Tue, 30 Mar 2021 03:20:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4vv0fgzpNtXFXrGhCyirhwBALxnuEbM4AMJFXSO3pFg=; b=2HE2ueFDVsGNMUAshabKdYu6Q3JHI1+rwf/EjY6KNcooThpqp06667KERB5xeYj/Lv GKc9jxRp30VUTisgvgoI67Z44ogXJZ/Mv5yCBV0rVx4MNf2y4hJ4biP0NmLf/EtfsNxE dLGkGb6tKysZ4cCYyuqqpMRMLJvR7U3mBCmsiSSedZfBZAl3U6DWs4kgRRDsqyNOkR6z jtrTjwkggHL5mjhKf/TsrMseR3AAeR9F/fDhk8zttbLlsW9tSS73wK9brfDm0W/VVw0X 200tz++gF9wQiPmBk7xQGV9c/lh/nbTi8UXEcpOmVZVkyCNRpJDrSV2TgGjHKkH3CzSA a9Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4vv0fgzpNtXFXrGhCyirhwBALxnuEbM4AMJFXSO3pFg=; b=J7abSnyzRv4lintLhpw1DHug2F7ioJWXIwN4N+JNMTpaK4muEDdU+udIWlce4DLvQu DRgzwvkJn6NKjujD34J7VAnjPpla2NUxtyEGAzrScigk4MeNQUBwZlV7FDxlqWYReBcw z5LRmL3Yakh85QOT2cGEgI+nMO6JOeRe9pad/qNfzn0320I4A2/sraRwuUTdxX7pPEbQ SeBoCTQNJAhTKfNMFfae/iUfaJm1A3v9AJwCJCPdabHoZomDBhoxe71qtG5XkLinKUNe SXOufmMqnWB1oXWBHlzVbgj4EnAGS+VWxBJqxHmnLY2SRD5M6mEtN73vSCUBcEhbnfpK /I4A== X-Gm-Message-State: AOAM533gvl8ldCaaET8D93zDw29FbOBPLw/5sgUNfKuoLpQ0EdNuBtQT qLtHNVsfMn8dny1O4NDNRZKtUQ== X-Google-Smtp-Source: ABdhPJyi8G/6wIWqYCU0GDx98hfZpDTpTad1jbbdH67t8tYd2VN4fJf09V0yhNqEvksyMvsfulZZhA== X-Received: by 2002:a17:90a:3b0e:: with SMTP id d14mr3659046pjc.198.1617099654608; Tue, 30 Mar 2021 03:20:54 -0700 (PDT) Received: from localhost.localdomain ([2408:8445:ad30:68d8:c87f:ca1b:dc00:4730]) by smtp.gmail.com with ESMTPSA id k10sm202259pfk.205.2021.03.30.03.20.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Mar 2021 03:20:54 -0700 (PDT) From: Muchun Song To: guro@fb.com, hannes@cmpxchg.org, mhocko@kernel.org, akpm@linux-foundation.org, shakeelb@google.com, vdavydov.dev@gmail.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, duanxiongchun@bytedance.com, Muchun Song Subject: [RFC PATCH 02/15] mm: memcontrol: bail out early when !mm in get_mem_cgroup_from_mm Date: Tue, 30 Mar 2021 18:15:18 +0800 Message-Id: <20210330101531.82752-3-songmuchun@bytedance.com> X-Mailer: git-send-email 2.21.0 (Apple Git-122) In-Reply-To: <20210330101531.82752-1-songmuchun@bytedance.com> References: <20210330101531.82752-1-songmuchun@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 5A5E180192D4 X-Stat-Signature: uk4ttd3nq1t6swok4rwifz1uahzaqykx X-Rspamd-Server: rspam02 Received-SPF: none (bytedance.com>: No applicable sender policy available) receiver=imf16; identity=mailfrom; envelope-from=""; helo=mail-pl1-f181.google.com; client-ip=209.85.214.181 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1617099654-560377 Content-Transfer-Encoding: quoted-printable 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: When mm is NULL, we do not need to hold rcu lock and call css_tryget for the root memcg. And we also do not need to check !mm in every loop of while. So bail out early when !mm. Signed-off-by: Muchun Song --- mm/memcontrol.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index d0c4f6e91e17..48e4c20bf115 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1029,20 +1029,19 @@ struct mem_cgroup *get_mem_cgroup_from_mm(struct = mm_struct *mm) if (mem_cgroup_disabled()) return NULL; =20 + /* + * Page cache insertions can happen withou an + * actual mm context, e.g. during disk probing + * on boot, loopback IO, acct() writes etc. + */ + if (unlikely(!mm)) + return root_mem_cgroup; + rcu_read_lock(); do { - /* - * Page cache insertions can happen withou an - * actual mm context, e.g. during disk probing - * on boot, loopback IO, acct() writes etc. - */ - if (unlikely(!mm)) + memcg =3D mem_cgroup_from_task(rcu_dereference(mm->owner)); + if (unlikely(!memcg)) memcg =3D root_mem_cgroup; - else { - memcg =3D mem_cgroup_from_task(rcu_dereference(mm->owner)); - if (unlikely(!memcg)) - memcg =3D root_mem_cgroup; - } } while (!css_tryget(&memcg->css)); rcu_read_unlock(); return memcg; --=20 2.11.0