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 15852C282D0 for ; Fri, 28 Feb 2025 18:48:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 99FAE280004; Fri, 28 Feb 2025 13:48:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 94C5D280001; Fri, 28 Feb 2025 13:48:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8149D280004; Fri, 28 Feb 2025 13:48:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 6269C280001 for ; Fri, 28 Feb 2025 13:48:23 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1B797C118B for ; Fri, 28 Feb 2025 18:48:23 +0000 (UTC) X-FDA: 83170238886.30.E6FA280 Received: from out-172.mta0.migadu.com (out-172.mta0.migadu.com [91.218.175.172]) by imf01.hostedemail.com (Postfix) with ESMTP id CBE5F4000F for ; Fri, 28 Feb 2025 18:48:19 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=kYIu73UR; spf=pass (imf01.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.172 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740768501; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=HcPXTDStRQimsWa/wHYNR8P8aT7gJV2DF6TcqNNIcdY=; b=Pdv2KMTmRFUbNHgR7L7mFCn0YKjesbUIBcL/Ds0WiWyPHzfMVgAOsmjTlPRrHl+zcaPSs/ WXfeRfVwCI/FZqnG9B2FzmfYto9cFL5nZRh0WXY8d6oW2VWI2NZvpemiFQh8tdZxu47Yu5 B2C8vRjiLxfMaE2gMvImeKMsiz0Kxh4= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=kYIu73UR; spf=pass (imf01.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.172 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740768501; a=rsa-sha256; cv=none; b=OkLx84oX+siuLu6utQNo8gw3DXG0h+MZozrCmi1li0uLC6JSkKAlwW7AsTI7KAMZj3BuqS 52v6NiyMY8r06LhEBaZU/p8CM3UrFDpi1EJnInfBJcV6zFCYvBA3c3jb/XASz4B8MeBEkz NhmbCQ3/3LJmC/HMm9t8K9NYoY61lNg= Date: Fri, 28 Feb 2025 10:48:12 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1740768497; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=HcPXTDStRQimsWa/wHYNR8P8aT7gJV2DF6TcqNNIcdY=; b=kYIu73URmX3RR3Ms+Qec5ZszBppn+YxVKME6EINiext8wzw9StXkpvXyatZXube1QilQec WNn3/uHIZDxpnQ+/dbL+l6mY+0ANHRxTPTcNV4x5mQPxA6+kmxkIHIgVc3Tqxay4bzdmm5 4YSQ5xe8T4NQ1KzmkhO2fbI4uOgPHdI= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Vlastimil Babka Cc: Jingxiang Zeng , linux-mm@kvack.org, akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, muchun.song@linux.dev, chengming.zhou@linux.dev, kasong@tencent.com, kernel test robot Subject: Re: [PATCH] mm/list_lru: make the case where mlru is NULL as unlikely Message-ID: References: <20250225153020.2514685-1-jingxiangzeng.cas@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: oe598dhcjzfocg5n7nh66tabuwua6uwb X-Rspamd-Queue-Id: CBE5F4000F X-Rspamd-Server: rspam07 X-HE-Tag: 1740768499-112657 X-HE-Meta: U2FsdGVkX1+NOkpoC1kWTyvb0im+YgoWzpe5PAgdSuPp75rH/1DZNy4zEvIaaFqJmt2M0/2X2huJb3fznvl/5z2/un8G/EarfhopTsPp3N8Xxt6ecXt5ZFFhQZivDEfaBYL0WTq/p2pOMctYN1fZRn0JS7b+yV2WfTa9C7tGPAJC723cb5NJrA/YMIH/wE5/wKmLEiFcOsEZxmqF6vXjihPp3FosuiSwXbmLl3YH3FQ+Xm0qptknnIIYKVEHnCsheBeERmB1xXnNJi/fqU5w+k6RqsOD1iWW9AaIU4QVhOuDyZzIVmWL4xUm60imsKT14uazuw7V3zFAGai7MQK4Cu3uRAoaijpnYJqO7oACsAXpN7dSU6XDyIDRNHzKMgeByRbU74/XaBA3O8QGrhy7/WnC4nZwgqht5NAHjKU4dXRkxn1X/j961RKJxZYYQwgYwrU3OB0e/jdeQLpd9kgV5+KH+SETQ0eKCiAQgyKb2BWshg+SMn53ANcuv3JW8hiKVHKCcPW80XbsVjDl6FHqlW+sjBJ06fJpgbUfXBq4lsxgLqwd/jjt3VnsDZqzGpqQK10/06Cu+lD5yx1NsuKFDO9nnDBumdEnXpRqIggOyFi1jsHjTeGeRN44k4qZL4D7buD11D11ZlEOB2KAOqmL9/oMqOC3BX7Rd7igcrAQudgtmoGu7YLDz78dl4aA0Fba1uiglCGlGidjE7Xg3sHKLGTQYQyi95jBCuJDMX0fu1exrwMaD63/UgczlMZiU7uiPMjw99fno2luE7DohVCS+cRV2cCTvKdc0MNEoS61EnjktoJCBHDLoTTc10IRAvkx6qf+r62UtsAMHHwTIwVmqhS5+wsZvLj1LdzRhwkWHrpIw4Bya/7Wypx7bTjmDSBueh/8hMOLhbCnk4qZYTs/vdovUn3n7JgQuyhRLa6fLujYZsdRH2qFURIRSxjqRaXtJaJgoFOFiyrMlS0ng+w bFRicY7l LQ+5YUP3lBwoVanHP7viXCLyFvFkxPCojpPVe8PGeG5X3AghTFXk8z0bhCu7R2NwECGcRh2y6FJBJKaUOj9l9kSmfh2CkefztZiaacRrkMDht27T4YE9pLZI3wxhH+zeSeYuSvCJeXs4tEb6NoqNHkpfUp3yt3oaN68sV1G4NKct5gKINszcCCShbpc18vO+b2hLCzKYTf30an2hwz2jymq0O1BaZ/KvNukfvk7lsxHDTU7Y= 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: On Fri, Feb 28, 2025 at 05:33:28PM +0100, Vlastimil Babka wrote: > On 2/28/25 17:30, Vlastimil Babka wrote: > > On 2/25/25 17:23, Shakeel Butt wrote: > >> On Tue, Feb 25, 2025 at 11:30:20PM +0800, Jingxiang Zeng wrote: > >>> mm/list_lru.c | 2 +- > >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>> > >>> diff --git a/mm/list_lru.c b/mm/list_lru.c > >>> index 064d2018e265..e7e13513ff8e 100644 > >>> --- a/mm/list_lru.c > >>> +++ b/mm/list_lru.c > >>> @@ -552,7 +552,7 @@ static int memcg_list_lru_alloc(struct mem_cgroup *memcg, struct list_lru *lru) > >>> } > >>> xas_unlock_irqrestore(&xas, flags); > >>> } while (xas_nomem(&xas, GFP_KERNEL)); > >>> - if (mlru) > >>> + if (unlikely(mlru)) > >>> kfree(mlru); > >> > >> The report is saying not to check at all. So, just remove the check and > >> simply call kfree(mlru) as it handles the NULL check efficiently. > > > > BTW, if it's unlikely to be !NULL then it's not really efficient to call > > kfree() unconditionally as it's a function call and those are more expensive > > than inline check (especially with spectre mitigations). Thanks, that warning gave me the impression that unconditional kfree() is always better. > > OTOH making kfree() do the check inline would bloat all callers, and most of > them are likely !NULL. > We could perhaps have a kfree_unlikely() variant doing an inline > "if unlikely(obj) kfree()" if enough places do it. > This makes sense.