Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp4656461rdh; Wed, 29 Nov 2023 07:17:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IF21+qnTajsY0xcAoYYZnYJ5HfqqOiQH9aCu0r7WJE367gZ5N7DfEE5SNAyL3ZggDMAaKBw X-Received: by 2002:a05:6e02:1c8a:b0:35c:c02b:f00f with SMTP id w10-20020a056e021c8a00b0035cc02bf00fmr14146007ill.32.1701271077331; Wed, 29 Nov 2023 07:17:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701271077; cv=none; d=google.com; s=arc-20160816; b=NV1zQSgDUNnoeqStr8jGoUCz7qHu2VpnE/uOv51zH4DqH7gPOc3F2fc1tPpH9MrNHf MY4owL8u5ke24Menn8Ivf16BGewWoTOSwwWe+8EU3/Rpu/cJIeQTXmwphPdWqNDd8BXT vo+sUl3j9mWYIrcj/QDmX4f0P0/eTZPIxCDHE1DRo4C5NnmiMsc1H+BARxz7/j9bxnIY HevFDLaIQwZqhH9WKODxFzK9/MPWdUKnK0qM44jb7sXUJD4yKw/VY2eOnKVpJx9RMt1+ yM4GejGPvBSDiXX5HuJZ2/u1veOQ1SmJg2yv6DiS8ZooxcInv56wk7H2Xdj7wXyjfRpW d6Dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=hVe+YsT+KR+z33Feh0S2abrktnXFj3/Xq7PW7szlVro=; fh=pk7jpUncC/oYY3P8aGEIppT3L2h/vHyw5+cFKny+Skk=; b=X/nFGnuFHm0FnScH6t0dLYkqRBA6Cc0rMrBWrN/3t7yz0wgx+rAynfksIgseqBRXLv rJLmw5VekFxpJYpfCHel7K7azz81qGpL6IUvzZ1vB8ugLQFEGB8QnJ+RlMagWAezSHn6 jjz5wBRNH6bRAUttgi81mFnALa+AOzmequ1mH3ehyNh6OjTlpuJfmS2Fl90tIfr7SfJ/ HGeknB0EreDJqzRNjsJ7+LDfwSliakLvpwZ5F1kdZbpmwdp9nrjGN/iPilhN3+h/ULS3 6rr5YccPIJywbJyQcmWEsHIAqfBfJ2deClyChHojW1nDB153pz1lTnqYUVB4CDpomaZX +1AA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=OqoUxFpI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id y17-20020a634b11000000b005c5e2ac7c3csi4510635pga.732.2023.11.29.07.17.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Nov 2023 07:17:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=OqoUxFpI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 92444802FD0F; Wed, 29 Nov 2023 07:17:55 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234568AbjK2PRq (ORCPT + 99 others); Wed, 29 Nov 2023 10:17:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232038AbjK2PRo (ORCPT ); Wed, 29 Nov 2023 10:17:44 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41AFDBE for ; Wed, 29 Nov 2023 07:17:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=hVe+YsT+KR+z33Feh0S2abrktnXFj3/Xq7PW7szlVro=; b=OqoUxFpIqv9MhZcTS2Ll09NpHG 699z6qO5qmlcNFR+1/9OLhgk4TBWZyo0iTYRrjK8OySQIMBBkPWtpqkKvyTrdPUCwEs45hUBSOaUC kYfvehnaUlhhLjSky8aLSOMWHKuLTDdPIQ8M/DM2fq4KFZXfSd3QtHefF/rk8d2yB9QtOfi37UF3X AmPyFsKY5BSoucK7HfyX1rV4rH5yTpc7Yc1pM9h3MDmkC2YH4gIacTzJR1t2sC+FJVf5mv/FCi1iT ZoDNVJ9utk4HgVCUv4QlW+RoZyIkiSZMMqb3ZzlrQMlx6ei66rtZensSuc7SYEf4m0FHKg5QpmsRE py05Z28g==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r8MJr-00DVpi-As; Wed, 29 Nov 2023 15:17:43 +0000 Date: Wed, 29 Nov 2023 15:17:43 +0000 From: Matthew Wilcox To: Zhiguo Jiang Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, opensource.kernel@vivo.com Subject: Re: [PATCH] mm:vmscan: fix shrink sc->nr counter values issue Message-ID: References: <20231129130126.2130-1-justinjiang@vivo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231129130126.2130-1-justinjiang@vivo.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 29 Nov 2023 07:17:55 -0800 (PST) On Wed, Nov 29, 2023 at 09:01:26PM +0800, Zhiguo Jiang wrote: > It is needed to ensure sc->nr.unqueued_dirty > 0, which can avoid to > set PGDAT_DIRTY flag when sc->nr.unqueued_dirty and sc->nr.file_taken > are both zero at the same time. Have you observed this happening, or is this from code review? > It can't be guaranteed for the PGDAT_WRITEBACK flag that only pages > marked for immediate reclaim are on evictable LRUs in other following > shrink processes of the same kswapd shrink recycling. So when both a > small amount of pages marked for immediate reclaim and a large amount > of pages marked for non-immediate reclaim are on evictable LRUs at the > same time, if it's only determined that there is at least a page marked > for immediate reclaim on evictable LRUs, kswapd shrink is throttled to > sleep, which will increase kswapd process consumption. > > It can be fixed to throttle kswapd shrink when sc->nr.immediate is equal > to sc->nr.file_taken. So you're fixing two distinct things in the same patch? > +++ b/mm/vmscan.c > @@ -5915,17 +5915,17 @@ static void shrink_node(pg_data_t *pgdat, struct scan_control *sc) > set_bit(PGDAT_WRITEBACK, &pgdat->flags); > > /* Allow kswapd to start writing pages during reclaim.*/ > - if (sc->nr.unqueued_dirty == sc->nr.file_taken) > + if (sc->nr.unqueued_dirty && sc->nr.unqueued_dirty == sc->nr.file_taken) > set_bit(PGDAT_DIRTY, &pgdat->flags); > > /* > - * If kswapd scans pages marked for immediate > + * If kswapd scans massive pages marked for immediate I don't understand why you've added the word "massive". Do you mean that the pages are large, or that kswapd has scanned a lot of pages? > * reclaim and under writeback (nr_immediate), it > * implies that pages are cycling through the LRU > * faster than they are written so forcibly stall > * until some pages complete writeback. > */ > - if (sc->nr.immediate) > + if (sc->nr.immediate && sc->nr.immediate == sc->nr.file_taken) > reclaim_throttle(pgdat, VMSCAN_THROTTLE_WRITEBACK); > }