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 85521C4332F for ; Thu, 10 Nov 2022 02:48:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFD8D6B0071; Wed, 9 Nov 2022 21:48:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DAE166B0072; Wed, 9 Nov 2022 21:48:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C755C6B0074; Wed, 9 Nov 2022 21:48:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B91766B0071 for ; Wed, 9 Nov 2022 21:48:28 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8A481ABC85 for ; Thu, 10 Nov 2022 02:48:28 +0000 (UTC) X-FDA: 80115999096.20.F33D3D7 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by imf16.hostedemail.com (Postfix) with ESMTP id 35A62180004 for ; Thu, 10 Nov 2022 02:48:27 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id k15so604896pfg.2 for ; Wed, 09 Nov 2022 18:48:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=e7eUyiQ6IzU2+8YpPxlxYGEz6hnrs4cMH/uVBORMyPA=; b=hJj2r8CBurme6Ps/PCRGDQ3Ut2BotHl6PwfMBtsW7ln7DRdh0pA3cM5hiaEWBSqlVP SY66mlbXOKxsctjgeY4XX4nHLI2vM3O2SKr6OqdnrVRYFEdos4rJ9QHklqnYLqaHG5aN /WJeRVBHALT+4aBNRJ8FpvYsP2q+OydgmEW3BojR3++p3aWiGlb8agop3By+kFGHXJo2 oEsKLhzBRhbwc0fFfqJWkjRMUS1jm4kP+P/WCLgCaEpSyMurjI1dK61vyWeybyzTsmP7 80cfVi/G89288QVex5RaQ/VzondOZ4PCka2oSB8tOAWBYGu71bOhMV85fxIUh4Od3Oyo YnnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=e7eUyiQ6IzU2+8YpPxlxYGEz6hnrs4cMH/uVBORMyPA=; b=GS1ne1RHWKdmAk67BAjMbVnlaIvOKUbegk+rb8rMHpc0MSMO/NlkQWFT16/wdC3++8 ROaBpnEZ50vBj8SCzxxtZWWHC4Jk3T4NEp6YhXK1gW4nWMsdFR3y68PY+YmV4WXN3xRQ Juw91D+9AEaQMiOuZsav3NF+uBj08LAf8ZvJpAiKijkE059vrkCmpbN698sq0cLkt72p je279mn1/46VvgPpQ6MDXwVTtr5//+4tHk2PvVXOeMoB/Xm6enZ/CT62XlUceIq2v5Gm KfcjO72efRvySeggtX3OFUUsWE4RskhG62o7yIsdCr7Vma5/ZWFfmIomxPb9wCQuFsQ7 9o6A== X-Gm-Message-State: ACrzQf2XrQfUOZFGnBhNcVc/KtU8s10W1jdoVZGHw44QyOrwaiu0GlJl rrm40PWZQlM7se+clSreUvM= X-Google-Smtp-Source: AMsMyM52mojWHoQ9X8h45pTN2+QLha+lM23Z556YFa768OQUBcX3vm/KoCOk34Z0LACmhNVGf8hYJQ== X-Received: by 2002:a65:4b88:0:b0:44e:74d0:e843 with SMTP id t8-20020a654b88000000b0044e74d0e843mr1616131pgq.95.1668048506995; Wed, 09 Nov 2022 18:48:26 -0800 (PST) Received: from [10.114.96.16] ([129.227.152.6]) by smtp.gmail.com with ESMTPSA id ij26-20020a170902ab5a00b0017f6c9622b9sm9744756plb.183.2022.11.09.18.48.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Nov 2022 18:48:26 -0800 (PST) Message-ID: <7113d66a-9792-b026-cece-5c1b21dd989d@gmail.com> Date: Thu, 10 Nov 2022 10:48:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH] mm/vmscan: simplify the nr assignment logic for pages to scan To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Chao Xu References: <20221109070416.620887-1-Chao.Xu9@zeekrlife.com> <20221109171952.826d991327e07319c5eb8cd3@linux-foundation.org> From: Chao Xu In-Reply-To: <20221109171952.826d991327e07319c5eb8cd3@linux-foundation.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1668048508; a=rsa-sha256; cv=none; b=SRj+pm+/UdwDoXnflA2lrD5QtKSYsqkyK+QDE/f0UAITjjHtbQPCyCkY3XPu4OmVbaCZvd KKsmUurYkFjJT72e+zTJPvhwJFxO8pMCoDUjdQSfr1vozc8H9Bg3rwRl/9CndBH4MwiKzM 72AVTxnJEW3JIeLzajf5NeBSJOUn/5w= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=hJj2r8CB; spf=pass (imf16.hostedemail.com: domain of amos.xuchao@gmail.com designates 209.85.210.195 as permitted sender) smtp.mailfrom=amos.xuchao@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=1668048508; 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=e7eUyiQ6IzU2+8YpPxlxYGEz6hnrs4cMH/uVBORMyPA=; b=ZIym6ZltLrsKotT7wWFw8tw78iQ6QDu+JZPern4U384SN+ZFn+OmW0xNr5PI96hJvDWa7B K+pwywQwqMSrn4h4iyexYPnXNKbANp3UebKflLz0r5TXD3E9xXQ/yYrnEESAyVDtpNGvXr 7ybFN68dRAXpn5aAYGbxd/04UNttJq8= X-Stat-Signature: n1gkynmikj5znn4tm5ug681nom3q4dsc X-Rspamd-Queue-Id: 35A62180004 Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=hJj2r8CB; spf=pass (imf16.hostedemail.com: domain of amos.xuchao@gmail.com designates 209.85.210.195 as permitted sender) smtp.mailfrom=amos.xuchao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1668048507-474474 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000660, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 在 2022/11/10 9:19, Andrew Morton 写道: > On Wed, 9 Nov 2022 15:04:16 +0800 Chao Xu wrote: > >> By default the assignment logic of anonymouns or file inactive >> pages and active pages to scan using the same duplicated code >> snippet. To simplify the logic, merge the same part. >> >> --- a/mm/vmscan.c >> +++ b/mm/vmscan.c >> @@ -5932,14 +5932,11 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) >> * scan target and the percentage scanning already complete >> */ >> lru = (lru == LRU_FILE) ? LRU_BASE : LRU_FILE; >> - nr_scanned = targets[lru] - nr[lru]; >> - nr[lru] = targets[lru] * (100 - percentage) / 100; >> - nr[lru] -= min(nr[lru], nr_scanned); >> - >> - lru += LRU_ACTIVE; >> - nr_scanned = targets[lru] - nr[lru]; >> - nr[lru] = targets[lru] * (100 - percentage) / 100; >> - nr[lru] -= min(nr[lru], nr_scanned); >> + for ( ; lru <= lru + LRU_ACTIVE; lru++) { > The "lru++" implicitly assumes that LRU_ACTIVE=1. That happens to be > the case, but a more accurate translation of the existing code would > use "lru += LRU_ACTIVE" here, yes? By default the value of LRU_ACTIVE is 1,but if someone change it one day, I use "lru++" maybe facing some exceptions, which is not robust. So I agree with that "lru += LRU_ACTIVE" is appropriate instead of "lru++". I will send a new patch. >> + nr_scanned = targets[lru] - nr[lru]; >> + nr[lru] = targets[lru] * (100 - percentage) / 100; >> + nr[lru] -= min(nr[lru], nr_scanned); >> + } >> >> scan_adjusted = true; >> }