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=-11.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 2839AC388F2 for ; Mon, 2 Nov 2020 13:34:19 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 64D20223B0 for ; Mon, 2 Nov 2020 13:34:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 64D20223B0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 93DFB6B005C; Mon, 2 Nov 2020 08:34:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 915016B005D; Mon, 2 Nov 2020 08:34:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 804F56B0068; Mon, 2 Nov 2020 08:34:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0119.hostedemail.com [216.40.44.119]) by kanga.kvack.org (Postfix) with ESMTP id 52D786B005C for ; Mon, 2 Nov 2020 08:34:17 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id EC5D88249980 for ; Mon, 2 Nov 2020 13:34:16 +0000 (UTC) X-FDA: 77439572112.29.smile90_300a24b272b0 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id C461918086CB5 for ; Mon, 2 Nov 2020 13:34:16 +0000 (UTC) X-HE-Tag: smile90_300a24b272b0 X-Filterd-Recvd-Size: 3112 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf10.hostedemail.com (Postfix) with ESMTP for ; Mon, 2 Nov 2020 13:34:16 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 5E695AEDA; Mon, 2 Nov 2020 13:34:15 +0000 (UTC) Subject: Re: [PATCH v2] mm/list_lru: optimize condition of exiting the loop To: Hui Su , akpm@linux-foundation.org, gustavo@embeddedor.com, songmuchun@bytedance.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20201028141646.GA75933@rlk> From: Vlastimil Babka Message-ID: Date: Mon, 2 Nov 2020 14:34:14 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201028141646.GA75933@rlk> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit 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 10/28/20 3:16 PM, Hui Su wrote: > In list_lru_walk(), nr_to_walk type is 'unsigned long', > so nr_to_walk won't be '< 0'. > > In list_lru_walk_node(), nr_to_walk type is 'unsigned long', > so *nr_to_walk won't be '< 0' too. > > We can use '!nr_to_walk' instead of 'nr_to_walk <= 0', which > is more precise. Yes, imho comparisons that make no sense are only misleading for the readers. Compilers can probably find out easier, so maybe there's no code generation change, but for making it less misleading: > Signed-off-by: Hui Su Acked-by: Vlastimil Babka > --- > include/linux/list_lru.h | 2 +- > mm/list_lru.c | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h > index 9dcaa3e582c9..b7bc4a2636b9 100644 > --- a/include/linux/list_lru.h > +++ b/include/linux/list_lru.h > @@ -214,7 +214,7 @@ list_lru_walk(struct list_lru *lru, list_lru_walk_cb isolate, > for_each_node_state(nid, N_NORMAL_MEMORY) { > isolated += list_lru_walk_node(lru, nid, isolate, > cb_arg, &nr_to_walk); > - if (nr_to_walk <= 0) > + if (!nr_to_walk) > break; > } > return isolated; > diff --git a/mm/list_lru.c b/mm/list_lru.c > index 5aa6e44bc2ae..35be4de9fd77 100644 > --- a/mm/list_lru.c > +++ b/mm/list_lru.c > @@ -294,7 +294,7 @@ unsigned long list_lru_walk_node(struct list_lru *lru, int nid, > > isolated += list_lru_walk_one(lru, nid, NULL, isolate, cb_arg, > nr_to_walk); > - if (*nr_to_walk > 0 && list_lru_memcg_aware(lru)) { > + if (*nr_to_walk && list_lru_memcg_aware(lru)) { > for_each_memcg_cache_index(memcg_idx) { > struct list_lru_node *nlru = &lru->node[nid]; > > @@ -304,7 +304,7 @@ unsigned long list_lru_walk_node(struct list_lru *lru, int nid, > nr_to_walk); > spin_unlock(&nlru->lock); > > - if (*nr_to_walk <= 0) > + if (!*nr_to_walk) > break; > } > } >