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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3EBCBC77B73 for ; Thu, 20 Apr 2023 02:25:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C90586B0075; Wed, 19 Apr 2023 22:25:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C19AF6B0078; Wed, 19 Apr 2023 22:25:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A92576B007B; Wed, 19 Apr 2023 22:25:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 98F786B0075 for ; Wed, 19 Apr 2023 22:25:33 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 64DB71603D8 for ; Thu, 20 Apr 2023 02:25:33 +0000 (UTC) X-FDA: 80700178146.17.0F5CB3E Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf14.hostedemail.com (Postfix) with ESMTP id 85B50100003 for ; Thu, 20 Apr 2023 02:25:31 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b=M4E2eRRF; spf=pass (imf14.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681957531; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qmy+jBwJo69IAuqlIjVIi7s1lnogGEvDlj2OElYYveU=; b=FFaMgvPzjPy2PjyFyIGsBKSV8QzuKxcOLTQBX6bCbQkelBwzASq1yIAT4G5hfAlKONLuwS rcTXZjqnIb0ygJe2d30znSNr5zsJmfchBEGx0V38DeLxMkQdE8gKU4ZMd87pq0klLuK1v9 ykZvEM39YqjEdG90IF2kUN3EMMw+64E= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b=M4E2eRRF; spf=pass (imf14.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681957531; a=rsa-sha256; cv=none; b=lE60i0S5RJ7c7zLwU9FokeFwLQP2Amrt6ap8ireQa1COFWT34whs755mpIjwPjWsLrWsDe e7KAsFNTOHigGYLemB/P4SuLsZ9vL8/dkvWITUz7z7sHjbN6JIWhwW15UNfxdgQwHhEXkz w7s8U7/bk4chkArdtBzw3TLQMXDoe68= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1a66e7a52d3so5367665ad.0 for ; Wed, 19 Apr 2023 19:25:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shopee.com; s=shopee.com; t=1681957530; x=1684549530; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=qmy+jBwJo69IAuqlIjVIi7s1lnogGEvDlj2OElYYveU=; b=M4E2eRRF3SMb7pNc58yrI6ZJ2rONGD8LHiNjS2WcfpEjOxouvSautngPJHn4Q9+6f1 JnkRQJS5gv2RGYk40S0fEyjdbjDCTxSZsr9ehB+YBHhHtsJWrZMWG/QuHqXtcolnoHhC pC2h53mJ2j0O7SpwGrT1Wp/b8uYz+tfHZo5zTTlY0EzVsJjI0ffCrhGLW260n18h6fBS abb1rxQZs1lf9i0d/HU87A9qghYSv21nOPiX/yb8491iKBMAoi/yIOKe0KIpHOdJsSF8 tVyW+MAtzIXZAtwDRe+tXWubEgxnq1WIiqn2uOniSRtj4BWDQQo+W/FXUW0UkRDVC8tV l/2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681957530; x=1684549530; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qmy+jBwJo69IAuqlIjVIi7s1lnogGEvDlj2OElYYveU=; b=aomBRfq+AmFKaSsnUaa01dunC69MetiRFcMrGSUKMn7i9gcAvH46bHOfLV8J6Ztgjo GAudZ2J0qNVjbkn0fLkqRjIQXcQ1KAi1ihozKGNyaCIPw3OdVa9VM5q0sGloWeHtBvIz anp+y/lvO9CzpOPJCuAD0X8bRSPyT0feCdXZgN3P0mIQ1j6XWyO8gatPPUVIlTzVftxB ah2eqXGxf5CxiV1k/txiowpLWltQNodf2BDWjKGgtrC5BuiAytxS8jqu9CBRLKvYZ+Xe UE9wIdA+aXWB+efJmBpsGYe3hdjKApZtAq/p2yTR0LsaCW54XOktyr3nvV54w0A97T3x HQVQ== X-Gm-Message-State: AAQBX9cbu/GyBCX7D+cX6laWpoosfrXBvKVKxXuTgvAjCQrjtWXpwhMb dq0NXOZ5ltMlQrZ8jHZ3A5y2Mw== X-Google-Smtp-Source: AKy350ZpZrm9aGRn3Ysob9PqD+nra+TtZ6/sQUy6vavIQAgKouSQzwxJznARhZ08enJkxSjofM0qIQ== X-Received: by 2002:a17:902:f312:b0:19e:b6b0:6b3 with SMTP id c18-20020a170902f31200b0019eb6b006b3mr6410637ple.15.1681957530268; Wed, 19 Apr 2023 19:25:30 -0700 (PDT) Received: from [10.54.24.141] ([143.92.118.3]) by smtp.gmail.com with ESMTPSA id j12-20020a170902690c00b001a6a6169d45sm116749plk.168.2023.04.19.19.25.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Apr 2023 19:25:29 -0700 (PDT) Message-ID: <9fb84281-19ce-8a39-b87b-fcadf9d265d1@shopee.com> Date: Thu, 20 Apr 2023 10:25:25 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH] mm, vmpressure: remove redundant check in vmpressure() To: Andrew Morton Cc: mhocko@suse.com, hannes@cmpxchg.org, roman.gushchin@linux.dev, shakeelb@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230419092007.186938-1-haifeng.xu@shopee.com> <20230419130311.587b7273eca2512c07b32bd0@linux-foundation.org> From: Haifeng Xu In-Reply-To: <20230419130311.587b7273eca2512c07b32bd0@linux-foundation.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: ri57yf7jp1q3npke58puyjnpx4cmppg3 X-Rspamd-Queue-Id: 85B50100003 X-HE-Tag: 1681957531-299087 X-HE-Meta: U2FsdGVkX1+AE7nqtLgeNWwfmAXG2nKnuCeL6foWwPr1tY6/ienn9FBFbb5BA3eCAYUMsEPgaNbQyxCvgCecbY5X/Vz2w1vMGZ2R/x9PlmJLaXAgPA5oMvThsCsK8tjRctnB0N2LzFeCpJC1xSltAoAPachKo0gR3cgFcQMFpI1aJXxIj/1YpZaWPeWZ13jzp90t1H6YskQGyqCjX8TJB4I7W9ScIFmDQMGtLGlgqa2QgDnf9V/n3eYpqoK2IVah7w85UswvoivvQs6c+nx1cdSdXdxT1JfsKQJOin15E3+qXwqCcS2GhrEGhGHZqBgx2a7CGbJmGd/eFHh4x1rZVyRwtuTzoAz4X9WH+iqS/UsPzt6rUHteIpVCgeHDdBgOPysvsseNBUb/qQUNDixiThGtrVicVaHmAKMfmSPuzkq3gvXxWQrhvuoklVT8YbI0qiNX6l6kn5oni9jxNcVHi8Jd8AIETWhpMStsaGXoMQdVjHXbDryOp52BG1871WRVrmn7RLtY2DVcGKrBiUHt53vBolOQNz9uqyWZH+k+hmWvr6MtHPEgnt9CPpD1oIk3iwqR9SsAWLK+T4BXpjWmAuZ05P426kiHGBLRRvHHRxiUFfJWhI5PDxY/rhsSD1LdITp6hKKlTOOjzwZeViQOoU0dpY0v/1oz5H+8WN+MGvG0MfeMsbXVsOa2INbQLSg1C5rMcg/Lne79Ob7yoIHVyGRqBrard7cjC05ehmOiwvOwT4lvcdqiDKP4e4xO/NjHuK2z4/NajVL3mbGQhLKcaA3CsbkC598t0c0xtod8C17DExNaCg6iGjKRieO2/ONvjTDXUbQS8eleOIISHQuzoWI87YYG7tp4brAeYMkMJvKKQGvFE46KJDfuDxNU1smMF6VgkVU6s83bFgjQxPclZNHRwd3BTya+vHjg+KF9Duy/7gBYQqfLaoyx4mkKTCAOQ45Zh2K538BykRafTQk w0ee5k59 i596rLwZwj3E/LMRndvzHyzK5+OiOsjlFTeg9Q45r9ZoUPc0lTM8zhfADE9nWC3aW2xygrlDWAAR+Gge1kaCd9PG8KIci0pDNdtWJaIGLmarNyYEBSHo2nTk3+MEvkxVEKWUVrqfhMUfpKF4UyOOci8p8shaNscLNtcEcKzXLPVta2fj687frwrfVPZSLDWn8ouCqaR0dgSXtivayoL0hL1ntk3OFIEQDcj/PZmae1bYCAtB4SrxVFfzGFOgO5DlS/0HXD2AEgvfpsbIS6L+9ZlAwiTf4zES88edrdKJD61lw11Hp+MGn//KXthDr7ULGYApP7OXge1hwY7cxMLLWElY+oR91a52G1VNIhIQ2b710UavJv4OX5/r7Dc0bCuvITytRR0Z6e2830Dj3gOQN5gzWlyIW+uHtgcXKO+gtMR5H5oY= 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: On 2023/4/20 04:03, Andrew Morton wrote: > On Wed, 19 Apr 2023 09:20:07 +0000 Haifeng Xu wrote: > >> There are three places, vmpressure_prio(), shrink_node_memcgs() and >> shrink_node(), which invoke vmpressure(). But only shrink_node_memcgs() >> sets tree to false and the memcg used in it is not NULL, so we don't >> check it again in vmpressure(). >> >> ... >> >> --- a/mm/vmpressure.c >> +++ b/mm/vmpressure.c >> @@ -284,7 +284,7 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, >> enum vmpressure_levels level; >> >> /* For now, no users for root-level efficiency */ >> - if (!memcg || mem_cgroup_is_root(memcg)) >> + if (mem_cgroup_is_root(memcg)) >> return; >> >> spin_lock(&vmpr->sr_lock); > > try_to_free_pages()-> > do_try_to_free_pages()-> > vmpressure_prio()-> > vmpressure()-> > crash > > what am I missing here? > > vmpressure_prio() set tree to true, so the crash won't happen. > It does appear that vmpressure() could be simplified with > > if (!memcg) > memcg = root_mem_cgroup; > > so the test you identified goes away and the memcg_to_vmpressure() call > becomes simpler. But that's such a small change it doesn't seem worth > the effort. memcg_to_vmpressure() has taken this case that the memcg is NULL into account and we do not need to change it. The test I identified is in the branch that the tree is set to false. In this branch, memcg can never be NULL because only shrink_node_memcgs() will step into it.