From patchwork Thu Feb 27 08:22:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingxiang Zeng X-Patchwork-Id: 13993890 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 7C88BC021BE for ; Thu, 27 Feb 2025 08:23:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6C406B007B; Thu, 27 Feb 2025 03:23:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C1B2B6B0088; Thu, 27 Feb 2025 03:23:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE2AD6B0089; Thu, 27 Feb 2025 03:23:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 90AD66B007B for ; Thu, 27 Feb 2025 03:23:34 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 3E9E6140A75 for ; Thu, 27 Feb 2025 08:23:34 +0000 (UTC) X-FDA: 83165035548.06.32E772B Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf04.hostedemail.com (Postfix) with ESMTP id 738A940006 for ; Thu, 27 Feb 2025 08:23:32 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z7nsa7FB; spf=pass (imf04.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@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=1740644612; h=from:from:sender:reply-to: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:references:dkim-signature; bh=Kp9ur2hNXSjkqPilOlOcneLqoWUWILkfNEyBz11UFzY=; b=xDhPWY8iuARkFWVnuC3eEdYO0Qnxd6tHczzJg7K8XTkiNXG5Rc6knsf5qG/W32yiYACBFw cy10c0OjQN+lJxKcA/6+VHlgWGlPczSIP8bU4oMzuNJaEmAtiilobFRaqz7vpfpUhAcy2F V0HvXdHJtP38CsTD9DhzI4e27fUSahg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z7nsa7FB; spf=pass (imf04.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740644612; a=rsa-sha256; cv=none; b=znSavRA5LXaxOU5ry9jLNm56q1MmlsiOLqvw+piB4KcF9ktCM7TV1LQwqX8ZT0vBC6WUrj 1DVz3MCwdktzoeIpmz8VguJgC7aKOyx7L/G2UTlIZ0gxvgAgsAMuuzoMmF8lTo8yeoD7Xk aTK7AKOZ5cg+mtc1PhSI0JFzBs4cLEc= Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2235908a30aso4278315ad.3 for ; Thu, 27 Feb 2025 00:23:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740644611; x=1741249411; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Kp9ur2hNXSjkqPilOlOcneLqoWUWILkfNEyBz11UFzY=; b=Z7nsa7FBzyrRoo7Ghdz5S2nIcHueGwmIoZ6AtrSVfXsVTrYqG9P1tMtdpwpICZIWQA dWU6QuFvwAze9MnnjblzCgGjR5vqfTgRlcHtBOb+7P4KS09AKbcWXAPx9B9dgvHSxGRI jm6VqzpUSdwyreMCwBjrX3NqB4iWX8F/cILjhBwj1DmCDGyaNUFmhRzmOO9xz1SLk7Sq E2PamiRTGh9IKk7KKfaHdLsgpJlw/nI7IjhdLNlUeuxfH+dxALcoxy/+cmMu5Z/h23rE kdWXceCUF8kVlyX0vEeYl+8tlqWtPdwWgSi5tpO5t6ivbovpkxoVaIyXk+5ZDHPktm9o 5fMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740644611; x=1741249411; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Kp9ur2hNXSjkqPilOlOcneLqoWUWILkfNEyBz11UFzY=; b=CkxB7dsV/y5mOyiEWNTUOMnZhK1W755z3eEV9XcDRISPUVLo6jpVQRZP9fJ9pLsXGu +Rkzc8tyh+ND/4mvPaarAHh6SsjqTgaIWqtb4v7Q0GAR7rLM3xMKRew2QpmGBhyI7E95 JbXrbdkJ1p2npr14W+RModQKpkef9BaicAw/HvYXH1fhqI0ydpiob7Kgn1DShJlR9D+5 Ahf2rfjl21UksZAM7glGNDHpl6MEGnFl3H/7dSHvs+cCGUhFRZFXKkaX/Cbh/sWUWqL2 DV7xtwQUhisbKPYooKQ7Lnkf7Ht7PfjI6TdJJzqVeicvUXJ885mZkz0PxNu62nhlNCJo WdcA== X-Gm-Message-State: AOJu0YyMoPjuUCSnB9sQ/8XYaBfwbtElI4lysezUBpKFBpW9SOQgIt5i c6dkQ+Ryx6NhhmpUb148WY13nZQsvvqh3KsYyn+wrP+8YePJLPa/BojV1MO6 X-Gm-Gg: ASbGncs/1jMSGC/H7vmolbVBlT/VClzEzWLhMTx8Xs8hjy+ppEKBjDDhBQvbcEUcQFz uKh7y2eV1FoD5/W1+xy/bbtKhKLI6VQZl7hJgncruOHcCY/Jz7RVNJuaZPixL3R4qsZ8SZQCglO NO6cqwIvz3uDGxCnEUtGpBzIz8bfso5LG9h0+EkmmdqIsPYqekGGLiMZ1yWCPu5xE7Rq5W+dDdx 4f8HB6+/kVNVJ+fmOIfi52yjd1/UCMUZRQuRnpn3xqbgr2gucpvrb/7efCDGD0HDu479VxZTuSu GFiZ8OKYqaiqJNQJJ/REnbY2Z4ryWpfDn8chUlbn3sxFWI6Nib1q6Fd4nfMeo/IXCMObMq0= X-Google-Smtp-Source: AGHT+IGn3nHJcIMxuox89/qI+PQX05GEftXul8fb2bg9WlfJwi/rHs1OmZ6dVLW7ShKPC+fXkaSErw== X-Received: by 2002:a05:6a20:2447:b0:1ee:8520:f979 with SMTP id adf61e73a8af0-1f10aecf237mr13502536637.36.1740644611007; Thu, 27 Feb 2025 00:23:31 -0800 (PST) Received: from localhost.localdomain ([14.116.239.36]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-aee7ddf20adsm808435a12.4.2025.02.27.00.23.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Feb 2025 00:23:30 -0800 (PST) From: Jingxiang Zeng To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, chengming.zhou@linux.dev, kasong@tencent.com, lkp@intel.com, Zeng Jingxiang Subject: [PATCH V1] mm/list_lru: make the case where mlru is NULL as unlikely Date: Thu, 27 Feb 2025 16:22:23 +0800 Message-ID: <20250227082223.1173847-1-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.43.5 Reply-To: Jingxiang Zeng MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 738A940006 X-Stat-Signature: cm75je1kjad6p3srmni6cy8cnzfunz8x X-Rspam-User: X-HE-Tag: 1740644612-459491 X-HE-Meta: U2FsdGVkX1/OfnCHJvI2UPSQhygD+x+8n8bhzpDcsGvqpoPPtrlaxvJb44JgztvZ3/XvdABPnMEYBf8oDz59AJjl3pBLhHLR4IeCpEVHEGclDbPUvzVUl7SJ8XuwGboOSewlVMU3vsZKmmRx08wUXsYfGr0lvoh9fCVAnr+CJ9S18mFTT8AvspMHza+D5zD3wimaj10kx4VYotPgIEqfNq0+D9CZld9bekNwTUR5HWQRHXgYywtpBEE7M2AuRWHE+eJjUajzButIUomiajhebvlj8Pf8VOudyJGcNG3XUGgyAphY8YOxRKlh4gn3tv5/OUeIRzX8zAmVd2V1IYHJQbVSLYMGgnZal/1uMWI4ps5SJpGco/ZC0zu4UvP5MKnuMcXgp96mOBw4UzZrvKSN3xnFJmaZ2CX7QYWqTOnXQKx2RL77L48CkYjYTMUQdHIBLYVHQ8zzPt6LPGLxyFEo/JKRHScuKps8eIyINv/U1MuEVs+0Duqn43JTRcTuaGBaYyg6oQ7V5tBIpyZTzA/sR3jDcOIC8W7SPnxP3tomUxCWpen3d7po4RmjtMOxNaRzJRYykhyCbstJRlzuyiLoK3rEiEwP6qKELPFfjgKpf4gK4wB5TQ2n2emBzTizRyHD/H+j4WORZFzng6mZ/IYet6otxC/fmaogF/iCQTeQsa/U13TbtOvIY+geb4Ji13hR9t8BlYCOkA1S38qm5tuLUylcHZPbHF3Cp+RYWQpXXv6CvEUfqxMbmS+8wK2ivlFLtEmSL4nFWEHDQyBRLzMbnwLMH7Uchg3q6xuYXhpC9tekmTKUYPLFHHK6w2R5/Q0W9E47zXn9MtBumzMG/0eftiaMBiRK+QS1C1gdy0KM++jv+03WnTPSSCbsu5P6Ps8t6Z3u5mq8wdJBEv8gqmkVxebzgK2KqnbHADLuB8BBn3Wcs7eletYx0lU0IxcRwTnpKhu9GOwdGiVEcL5BBNB Uuk5NuEz lQJCY2QV1YsP6cYSC7KsCWc0MzeaqeuQkcTPQVMYFqBH08lWAf/o8gpjkjFNtFQZ+sKQOXZhWpZ1rkkO3zR2VXBOoEB+zV5zV3JL1Fl4wZJsys420nN3Crf+4z7G8MaOFXJs7yX3zeCQh6sn1wLSoCPGd9SbskAe124EaJxmvuoHnP6SNjyrMqAToTCoYVMQIIRCIfMt3raFvNAipQpT4fKm1VsIR3sfgqD1oVeF0gnLL11185cv/RUQNGyeD3FL3DSX3JqmYZw30iS5xRqWCMljId2uxOcIRcLXJm2ZI4XyxmBzIZTJniQrR5WOnFuqCVakOzt5KKrb1pSihQrFS07KxzZPxx+7Y2zBwR8xTC8yK0B/+Zl5JZsuIsIvANAXysI7lSPRhYQzFyzfctWQwKboc97WzVhuoBVozU5RsDJmVZL0Rh5L3WZvvkMyvO2bYc71iszZ7uwsydxDQ8jkRvaQqJK7WT8e7OweSOsLAUcR/cE2oi+xXLakuz9dEDneKmN6LLy9wxpmVkHpZwCAusgWcxtnSAScD1MBWFCZ85PNMy1WPQ9V2o2B9H8HQBm2PL2mj1VJGgwpc1YrvgzYRp61MTimshmhVHWjUxGLiSK+qHOeMGh6u36ysj5IcWm2bOgNUqkiDsE/swX8l9fV0vBhvQmKkmkILKkqZ5kDd3bGMJeRGwHfoHsHHNQuTCyxKydOuqwqNn/ReRYDbULikF/j/FzdkPhfmHTlKVmz53tPoKAxVJtFc1S4ESa7ZdI3wKqEF 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: List-Subscribe: List-Unsubscribe: From: Zeng Jingxiang In the following memcg_list_lru_alloc() function, mlru here is almost always NULL, so in most cases this should save a function call, mark mlru as unlikely to optimize the code, and reusing the mlru for the next attempt when the tree insertion fails. do { xas_lock_irqsave(&xas, flags); if (!xas_load(&xas) && !css_is_dying(&pos->css)) { xas_store(&xas, mlru); if (!xas_error(&xas)) mlru = NULL; } xas_unlock_irqrestore(&xas, flags); } while (xas_nomem(&xas, GFP_KERNEL)); > if (mlru) kfree(mlru); Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202412290924.UTP7GH2Z-lkp@intel.com/ Signed-off-by: Zeng Jingxiang Suggested-by: Johannes Weiner Reviewed-by: Muchun Song Acked-by: Johannes Weiner --- mm/list_lru.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mm/list_lru.c b/mm/list_lru.c index 7d69434c70e0..490473af3122 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -510,7 +510,7 @@ int memcg_list_lru_alloc(struct mem_cgroup *memcg, struct list_lru *lru, gfp_t gfp) { unsigned long flags; - struct list_lru_memcg *mlru; + struct list_lru_memcg *mlru = NULL; struct mem_cgroup *pos, *parent; XA_STATE(xas, &lru->xa, 0); @@ -535,9 +535,11 @@ int memcg_list_lru_alloc(struct mem_cgroup *memcg, struct list_lru *lru, parent = parent_mem_cgroup(pos); } - mlru = memcg_init_list_lru_one(lru, gfp); - if (!mlru) - return -ENOMEM; + if (!mlru) { + mlru = memcg_init_list_lru_one(lru, gfp); + if (!mlru) + return -ENOMEM; + } xas_set(&xas, pos->kmemcg_id); do { xas_lock_irqsave(&xas, flags); @@ -548,10 +550,11 @@ int memcg_list_lru_alloc(struct mem_cgroup *memcg, struct list_lru *lru, } xas_unlock_irqrestore(&xas, flags); } while (xas_nomem(&xas, gfp)); - if (mlru) - kfree(mlru); } while (pos != memcg && !css_is_dying(&pos->css)); + if (unlikely(mlru)) + kfree(mlru); + return xas_error(&xas); } #else