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 CDB3DD13588 for ; Mon, 28 Oct 2024 05:24:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 335546B0085; Mon, 28 Oct 2024 01:24:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E5BE6B0088; Mon, 28 Oct 2024 01:24:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1ADFB6B0089; Mon, 28 Oct 2024 01:24:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E6A1A6B0085 for ; Mon, 28 Oct 2024 01:24:21 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3525B1A06EC for ; Mon, 28 Oct 2024 05:23:41 +0000 (UTC) X-FDA: 82721868768.17.C09EA83 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) by imf10.hostedemail.com (Postfix) with ESMTP id 61DE1C0007 for ; Mon, 28 Oct 2024 05:24:09 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=o2Iqs6Jt; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf10.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730093017; a=rsa-sha256; cv=none; b=sqyQTU+cCUkxMCpVjc9m1tPZ3ZElr/gCVSjd+YttDtRKKZGzKgey8hHycpTwvMUpPLkYrQ 3g0m1zwxRsv23MTUTRHTBNk133rwZmRIJNVdIEfHYbfqzn7kwmx8tRtUX0IYc91kOLrPB5 tPDjX5eTGqDOPiKkYY/y9pSzfJAFXkg= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=o2Iqs6Jt; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf10.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730093017; 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=vKZnBJgkLTis6WvRFORsBrAnvo1jFKMJKIcz0ymTvdQ=; b=QDDPoD/ROGeyiDY5QnR0HSQTCDQqvDmq0dBOiCPLie68nzGHLbDwlqqtTITAH3RFfYi//X JBB5m91D8qVVnybxoW8wR783qN3ntuypn8pykYc8d95NdMJPmkt2DZ04wEq3XPSyDfCEUw kpD/89iJZUx1O1oor5v8aMHgJ/765IY= Date: Sun, 27 Oct 2024 22:24:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1730093055; 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=vKZnBJgkLTis6WvRFORsBrAnvo1jFKMJKIcz0ymTvdQ=; b=o2Iqs6JtXSYHLBrFRFXW3kT3XWOcfmAqgYRd7O/2nx/1zujWHjLpxdWT9xLf0jh2qA093q vaxucCZvB90DEXRk0mi/tmDcg79HploTxSXMX9lSSqecDOB2W8ZCQZPPWrBr26GaIqEP4O Gx0QdGL8Eu0EApGnx13PDbW/nh+aPFY= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Gregory Price Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@meta.com, akpm@linux-foundation.org, ying.huang@intel.com, weixugc@google.com, dave.hansen@linux.intel.com, osalvador@suse.de, shy828301@gmail.com, stable@vger.kernel.org Subject: Re: [PATCH] vmscan,migrate: fix double-decrement on node stats when demoting pages Message-ID: References: <20241025141724.17927-1-gourry@gourry.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241025141724.17927-1-gourry@gourry.net> X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: 84faup19o8pon1wne7mcqjxkth544qoe X-Rspamd-Queue-Id: 61DE1C0007 X-Rspamd-Server: rspam02 X-HE-Tag: 1730093049-929153 X-HE-Meta: U2FsdGVkX1+PCqsAB2HYlWeoAo8wOjqbM3S3z3qKT9ja7xNeFKphc+oZDq/YJWvtgcl7JpAjq2yzLCn0WZ36EXQf3Be26M1Id7+dFnJULBsiSgTqOZxD54ICKC4O6fQ8yLhjKPkCUKpEHUeHIvCf21TX/TSJya9w+4gQq9Jny0hZG7NV9n6fIc1qLy/1hJ3W7mCvHmq8zjAwSxzqEF4UcGJBOYjbeXIk4x8X54agwNKXzCeOnH3ratfW12w4mVvx+Yolqxq2u/PoQOI1CDjS2cjy9isz9wcvdiNVIjRhFICv8iDaj3Q7IItUTBG29UwaT11pyKgjw7RuLUedyKXHmUH0n0WkMLTYnX9slWdXvkFWRDTeUoSrnHxdABq4iS9PkwritKxxGzsg38Uvt4iDVEyB9XcZeGhlMaCV2nkrvRCCthLa9BHaEHZbL9JZ2kPV9Pynm6o2r3lKDkNSMBwU/iCCvGDMDgb9dk6CkGqb5RW0ZOafcGnGs3VgU6qNzmSL4eLCYjFZSUlomYONBTy3MK6sf2XIqnf7XwZkb13Juj3ZqAe97/PCE/KsyXMW8xUeUZRXrlzk1TozteoRPQe2XODpXNhn52itrke0yh8u4Ovesc6y+jXXbzWDFJGbblWCsJEsaUtivXCvfjgK8huMeazXA+BRgkP7e34SOsM2IwJMQaaOUg3esQ86GwMZKwwAQX2NKKG5DzYdwrLBTjyUjPZEkaPRpIwaGxKZpDizbQjc/gcMHSXVWtQdNpIsbsg1vVjNT5gxVdUCnZb2c6kELdw5EA1fs/6OAJmO+ED2xfq1z0MbalbZ7OowldMOL1RP7u8bBok60cNJG9twtlxQMF+CeA7ZfwdIpcItG1YytIsWZjqaHAT4+eZceJRs+dxVu9axJ2XPBiyw2KkjXQX4XR3Qn1MtLdYSdyX3wl2cX8jRu8dTEgPOVIfOVGMxP0BwI8eEGee8qgsppREzfLx Jj0Vf5hg JlUftln9Qh8SjbnGdKXhA4GW8XT1o3UWOKHJ22AIobP//xl//rK0vWZP0jsw4e2uQYW/BbLV4+HFuuB1gvtangOTEOQECtis7Kitk6OEu5KzXo4DFcA1Tk03TPgJPM3QX59SJjVERRYZqDTtOy9mJcCqGDeYXmdKhTpAqNHPkhKobDQFGR3fbMdrt3tLNGMpXP8p2Fb9ekIz1qeYV1rjJipsEuk1uOBwO7M6L 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, Oct 25, 2024 at 10:17:24AM GMT, Gregory Price wrote: > When numa balancing is enabled with demotion, vmscan will call > migrate_pages when shrinking LRUs. Successful demotions will > cause node vmstat numbers to double-decrement, leading to an > imbalanced page count. The result is dmesg output like such: > > $ cat /proc/sys/vm/stat_refresh > > [77383.088417] vmstat_refresh: nr_isolated_anon -103212 > [77383.088417] vmstat_refresh: nr_isolated_file -899642 > > This negative value may impact compaction and reclaim throttling. > > The double-decrement occurs in the migrate_pages path: > > caller to shrink_folio_list decrements the count > shrink_folio_list > demote_folio_list > migrate_pages > migrate_pages_batch > migrate_folio_move > migrate_folio_done > mod_node_page_state(-ve) <- second decrement > > This path happens for SUCCESSFUL migrations, not failures. Typically > callers to migrate_pages are required to handle putback/accounting for > failures, but this is already handled in the shrink code. > > When accounting for migrations, instead do not decrement the count > when the migration reason is MR_DEMOTION. As of v6.11, this demotion > logic is the only source of MR_DEMOTION. > > Signed-off-by: Gregory Price > Fixes: 26aa2d199d6f2 ("mm/migrate: demote pages during reclaim") > Cc: stable@vger.kernel.org Reviewed-by: Shakeel Butt This patch looks good for stable backports. For future I wonder if instead of migrate_pages(), the caller providing the isolated folios, manages the isolated stats (increments and decrements) similar to how reclaim does it. > --- > mm/migrate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 923ea80ba744..e3aac274cf16 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1099,7 +1099,7 @@ static void migrate_folio_done(struct folio *src, > * not accounted to NR_ISOLATED_*. They can be recognized > * as __folio_test_movable > */ > - if (likely(!__folio_test_movable(src))) > + if (likely(!__folio_test_movable(src)) && reason != MR_DEMOTION) > mod_node_page_state(folio_pgdat(src), NR_ISOLATED_ANON + > folio_is_file_lru(src), -folio_nr_pages(src)); > > -- > 2.43.0 >