From patchwork Sun Sep 19 15:25:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xie Yongmei X-Patchwork-Id: 12504359 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=-14.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_HOTMAIL_RCVD2,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT 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 5617BC433F5 for ; Sun, 19 Sep 2021 15:25:24 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id CFEED610A3 for ; Sun, 19 Sep 2021 15:25:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CFEED610A3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=hotmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 6D7736B0072; Sun, 19 Sep 2021 11:25:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 686E8900002; Sun, 19 Sep 2021 11:25:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 54ED36B0074; Sun, 19 Sep 2021 11:25:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0193.hostedemail.com [216.40.44.193]) by kanga.kvack.org (Postfix) with ESMTP id 46F736B0072 for ; Sun, 19 Sep 2021 11:25:23 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 0E0A12AEEA for ; Sun, 19 Sep 2021 15:25:23 +0000 (UTC) X-FDA: 78604696926.28.92D0910 Received: from JPN01-OS2-obe.outbound.protection.outlook.com (mail-os2jpn01olkn0189.outbound.protection.outlook.com [104.47.92.189]) by imf12.hostedemail.com (Postfix) with ESMTP id 9D51A10000BF for ; Sun, 19 Sep 2021 15:25:22 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C+PkyD4Dg9jiBWBty+F4noy0CDPdzC47tGcn9mo2TqeEgtEmTLvpl/JKe7InVKEZgscI7SZWF8tz0CeFdb1/PpbFKFv9ISKuz5LjF/qMEesap2MGEkuEUJe/7+dxSsf/lFXtKaGb7FyVA1pYAwJiFVidwevp+jMXxh2n53Oz7pI7qIks4Xow7ksBT93Ku1OBZxF0VG2utiRXl6Nt2U7P/BzTV5SK/fu/b9QFBVoojcQ6pDkeG6fkrrvA++S+dscgofA39mhjWBfiAOLTf5+i4e0GV+f+uTdXitx28nHxlw4C/AyUfLtxfs4f5gcz9vGF98x2FmoT2WpgtMDikXnZTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+KP8OgQxrt0UymLsS6trGQHGQCpW/HfmLu9/pwh3i14=; b=EuT1joAUWnu6rE5g76xz58nVN+0kEhSMhYpkjyv/YzhBofXYaOOr5ZhKOyzfh97y8E1HcqnhDCwzI7tzLG5wMfLUxKnklyRR4DmpX20R7NCLX30s1s+DPh9K7uU8gFpbtLB9llO35UHir00maMkNyBdPvNL6fmN60S0RMcugjFnoDM1WtKJioflguMOx1VOGbCbqMF3ABJbtU3aC/rae6h4/TFFOx8hKvX/wBiYR1P/W+HfesCPHRJWTQyXMdj7O2Zfr4C0mpZAKkuNqqp6AYl0e9486tDQnW38aLkY+WPrn6OMERk6JFFLyCSS7b5rUduqudu5yOq1ilU+izile7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+KP8OgQxrt0UymLsS6trGQHGQCpW/HfmLu9/pwh3i14=; b=jJKWtBg+NRB1i0w74KvS9KJJRmRzRvFj9Q2B3YzHOtiVxMl7BrTO0sNyitHphFY18ySIl4cxs1gSTYvLCOYKrp3LdRyXCMBBgtNRmDo27XlvoujRg+9iTW0Wr7b+yVxR6ESJAaO1AB/LeSOIEweyKSyXB2I4ScFUrN0EPNur9hpeOilWT7iC1sQoLOTzxDf9Gfk9ksKkSzfpV9UaAssI3PdNcAydchjI/rGrXOnsXY9qp19L1Isrp+7g4PjOhg2o86d8XxL1xA29fVdLZzuZm5a2196tcsN7sfLpntjSImFnOE0LvVgF0mtiQ9GGTB9rQ/UbVNDkCR75FYqR+C8ZEw== Received: from TYCP286MB1108.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:b3::8) by TYAP286MB0683.JPNP286.PROD.OUTLOOK.COM (2603:1096:402:3b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Sun, 19 Sep 2021 15:25:19 +0000 Received: from TYCP286MB1108.JPNP286.PROD.OUTLOOK.COM ([fe80::38ca:ae4a:679a:fed4]) by TYCP286MB1108.JPNP286.PROD.OUTLOOK.COM ([fe80::38ca:ae4a:679a:fed4%9]) with mapi id 15.20.4523.018; Sun, 19 Sep 2021 15:25:19 +0000 From: Yongmei Xie To: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: yongmeixie@hotmail.com Subject: [PATCH] mm:vmscan: fix extra adjustment for lruvec's nonresident_age in case of reactivation Date: Sun, 19 Sep 2021 23:25:09 +0800 Message-ID: X-Mailer: git-send-email 2.18.2 X-TMN: [fcqvDhBlbAiu4HVnLaobcR8CcGco8jpg] X-ClientProxiedBy: HK2PR02CA0132.apcprd02.prod.outlook.com (2603:1096:202:16::16) To TYCP286MB1108.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:b3::8) X-Microsoft-Original-Message-ID: <20210919152509.653625-1-yongmeixie@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from 192.168.3.12 (111.202.144.35) by HK2PR02CA0132.apcprd02.prod.outlook.com (2603:1096:202:16::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Sun, 19 Sep 2021 15:25:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a347cbfd-2530-47ef-304f-08d97b81b06f X-MS-Exchange-SLBlob-MailProps: pxu8rxgqUgggIrXdRaGUmvp8RD4fWT3D8khChYMwPP9HlMAmlxdmG8m8XgxTfwH9j5eIZKcaGuG6Pn99o4EknyrN8JveRO4pXPi+HJQZy2lladMdzWIQKkmbnECPybeVXILV134bl1lhE+PEl0a0ZQSW+ub6CCPDrD0agFmff3m0lbzFfImutLk+e5HvZlPM/7EDc/yQdLgyFfhIY6d1EeBtBE1iVku412sos+5RD8BT33ef1ZACrX0xt+87Amnd8mzTadeoIxkU0c+YseNWDIsJfXAz2OcWFsNsmwBFkK8Qumpe4GAMYjB2BzCSYTy9s6MNsZKzShPzL+SAs8/yJ9zkyXXWTW0pwdW7blV80LZKdmkTFi7iivKyVmoabwiFL5AgMwIaIW+2FNAEo4ZaJ7KLO6UMQKYvdEHE7H4xJh5nnFKaWIxKea8F7Dp2oFqEllmPLpBz76IqVthTWe5bv2yDy9kc1spQibU7El0zJE9fIeknQf5PL+V48Kd+scP+ome/Ll8CUPSUCE7GTalOJlG6BenDQ/wVkLx+Q06Zdi26/vxi5Go6gcm44ixcgvtZX7ef7n8EShC3/uznnK4ssBTFPJp4TmmiLgOjgQR1gz+9/y+U/lT9PSv3TXeeKNhrg5YOTT3uCkoGAJueosrinRRe6De2TSM3W31ifEj5NO1bdPCesZrZctLj8hshLd9fN36Quq4QS3Wkr1f/6qYzqQ== X-MS-TrafficTypeDiagnostic: TYAP286MB0683: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3/+UVN1N8ktRl7iF2cZ+k7oFc/UABnu7FxHJ44OskeyqdxDF3pLZvHztBb1TGYmeNXfTXgUlo5tB9vwMmfiTp1BnpSWJi3ZXml02CAsKB33K2vsRvkfL2mL9io3OGbPtmBOo4D8StHCPmfURkh16zsS/Fj/kr6PV8WGt3yklioG32pI78VDXesr/sp6fNWQ42mfoEywigchQyZIdNNpl5nS+XSIFvzdmoL64MsjJ/rBG+cRC28mnwz6N4uP4cUMmXtlwSbbz2uJHNsW1FdE++NPOPuZ+OiqVHd40+JHkQTygdt5chE+MHx82VfMT9HzI1AXNS+WcESgFv5HSClm6Q9IEsQNFvF2eCQvcgRCfKyXNgQsGzrNsUUDEc7MC6Wmc8NWOLouxB5Zy81sgqeHZI/2lRmo6JfAVT+7GDFEMRxfYNVYQaR2sr4rlhUqLVe6f X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jDzcCTNIm/I2JHWt25+frRag7FwUs5N2U4LFiCD1bkFHmL0nHF5876luqMdgNxCe0+7DpV19ikaByZwPvZoggptTl9bFVdmltJR4mKRqt+oip9XG2Prt+jq9IAGsnI335ISQR7siAawEaBzap4xQ4Q== X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: a347cbfd-2530-47ef-304f-08d97b81b06f X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB1108.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2021 15:25:19.2631 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAP286MB0683 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 9D51A10000BF Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=hotmail.com header.s=selector1 header.b=jJKWtBg+; dmarc=pass (policy=none) header.from=hotmail.com; spf=pass (imf12.hostedemail.com: domain of yongmeixie@hotmail.com designates 104.47.92.189 as permitted sender) smtp.mailfrom=yongmeixie@hotmail.com X-Stat-Signature: d18mkyf79som7yer8fxrt4o7qdxhkjqw X-HE-Tag: 1632065122-155592 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000056, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Before commit #31d8fcac, VM didn't increase nonresident_age (AKA inactive age for file pages) in shrink_page_list. When putback_inactive_pages was converged with move_pages_to_lru, both shrink_active_list and shrink_page_list use the same function to handle move pages to the appropriate lru under lru lock's protection. At those day, VM didn't increase nonresident_age for second chance promotion. Commit #31d8fcac fix the problem. Definitely, we should account the activation for second chance. But move_pages_to_lru is used in reactivation in active lru as well for protecting code section. So I suggest to add another variable to tell whether reactivation or not. Signed-off-by: Yongmei Xie --- mm/vmscan.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 74296c2d1fed..85ccafcd4912 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2152,7 +2152,8 @@ static int too_many_isolated(struct pglist_data *pgdat, int file, * Returns the number of pages moved to the given lruvec. */ static unsigned int move_pages_to_lru(struct lruvec *lruvec, - struct list_head *list) + struct list_head *list, + bool reactivation) { int nr_pages, nr_moved = 0; LIST_HEAD(pages_to_free); @@ -2203,7 +2204,7 @@ static unsigned int move_pages_to_lru(struct lruvec *lruvec, add_page_to_lru_list(page, lruvec); nr_pages = thp_nr_pages(page); nr_moved += nr_pages; - if (PageActive(page)) + if (PageActive(page) && !reactivation) workingset_age_nonresident(lruvec, nr_pages); } @@ -2281,7 +2282,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, nr_reclaimed = shrink_page_list(&page_list, pgdat, sc, &stat, false); spin_lock_irq(&lruvec->lru_lock); - move_pages_to_lru(lruvec, &page_list); + move_pages_to_lru(lruvec, &page_list, false); __mod_node_page_state(pgdat, NR_ISOLATED_ANON + file, -nr_taken); item = current_is_kswapd() ? PGSTEAL_KSWAPD : PGSTEAL_DIRECT; @@ -2418,8 +2419,8 @@ static void shrink_active_list(unsigned long nr_to_scan, */ spin_lock_irq(&lruvec->lru_lock); - nr_activate = move_pages_to_lru(lruvec, &l_active); - nr_deactivate = move_pages_to_lru(lruvec, &l_inactive); + nr_activate = move_pages_to_lru(lruvec, &l_active, true); + nr_deactivate = move_pages_to_lru(lruvec, &l_inactive, false); /* Keep all free pages in l_active list */ list_splice(&l_inactive, &l_active);