From patchwork Mon Sep 20 03:11:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xie Yongmei X-Patchwork-Id: 12504535 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=-5.7 required=3.0 tests=BAYES_00, CHARSET_FARAWAY_HEADER,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, FORGED_HOTMAIL_RCVD2,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 47581C433EF for ; Mon, 20 Sep 2021 03:11:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B025960FE6 for ; Mon, 20 Sep 2021 03:11:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B025960FE6 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 E951A900003; Sun, 19 Sep 2021 23:11:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E45B7900002; Sun, 19 Sep 2021 23:11:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0CE1900003; Sun, 19 Sep 2021 23:11:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0109.hostedemail.com [216.40.44.109]) by kanga.kvack.org (Postfix) with ESMTP id BBD44900002 for ; Sun, 19 Sep 2021 23:11:12 -0400 (EDT) Received: from smtpin08.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 625C027DF2 for ; Mon, 20 Sep 2021 03:11:07 +0000 (UTC) X-FDA: 78606475374.08.4107E05 Received: from JPN01-OS2-obe.outbound.protection.outlook.com (mail-os2jpn01olkn0177.outbound.protection.outlook.com [104.47.92.177]) by imf07.hostedemail.com (Postfix) with ESMTP id B0ECF10001CC for ; Mon, 20 Sep 2021 03:11:06 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Aw0s2oDJGjsck8kEDVLqiLEKUI3F1YjopmMai/ttMuENo+TXbLxqD93aC9otHP13tUDDUFnm76cqhK05rpXSAQc4PN4oHpk2MY9XeemLKlrj2OP0e+frfcQ80Zyj2hfsjYVTKHBEfPPfe/5Kir1iE411nBsuiucBsf5moB5nOu2lnLkhd+vvD0NXIbnfc4b++qjodyeTCvPY15p4ZUzI1RHkeq5fUVyfGaTL8L3U01rBGc2wP8RX6tX1VX7rtLyHz+uQ81BxW6d4Lq/SlKYdxc6/Lr3B3xz7gf25td1PiHJr1hRgjtTvxxd3E4+DJdQlbu782e03mv7Bt7SUSnKPLA== 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=QDwxGYek9awYREDhJF4QutuQ7VjPYxy+bGakZjf8ZWY=; b=hyQV92MJlM40+xVFDQ4Sv/qpoT3gLmTgRqlQnbrcMIo5kFofjuLkjZ7q/ivjG5pl11ryLz+AhWM7k2+aChYx4eIWY3vpel3FtvDP8+nyTxN1yThLqfmqNmS+So8LmWDw7DMrDzurX7JExDqYIieGChTWzuGaetrA9Sr1ozYMdgeR5UCu3j0Cmf67Tj8UFzQZDZZ0TY4+M5Bh3BTUtOgFwIhTJ4+8Rq/cgoJm+zNKC/GNGjn7OVTDHRrlVk8Abud8vcQHUSDepdWW62YhKEkkH83QxTe9QNWZi3MCp4TAYzRZgJRmS30bTX7VtG/i5GlxqkJ1HU5ioCCGMkrRkuvYWA== 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=QDwxGYek9awYREDhJF4QutuQ7VjPYxy+bGakZjf8ZWY=; b=lBhD1W+LsNkHh6plVqWJfK4ldgdFXlnoHRsR7OgM7UyYf2Cm29fSAAW3cSYPk0MB2w5Hy390t80a31RcF0XFAH3+DaZ8mTR/tEs0vqX7DYJeWJjkY/CPTlzqy38qi5k230/SXcnu1+R17GU5/uvINP4WPin6PfF27cbEkSADCvKA6dluLccBArVohZsrHk/C2nhvsaFxmIyVWBEFPrR6+6qTWFNfidGv7DwZ3p++aRlA9nXwTyUnmJL5gYBhUFUtMqiKBa8MZlUutyBVppHXCEwKVzBy3AmPuXCqrTyKWwRayUhK8Y66gdf35K1pg0/oeCho+rY7pIyiB5+intKQZA== Received: from TYYP286MB1115.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:ce::9) by TYAP286MB0795.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:84::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Mon, 20 Sep 2021 03:11:02 +0000 Received: from TYYP286MB1115.JPNP286.PROD.OUTLOOK.COM ([fe80::ec61:211d:67d:95fe]) by TYYP286MB1115.JPNP286.PROD.OUTLOOK.COM ([fe80::ec61:211d:67d:95fe%7]) with mapi id 15.20.4523.018; Mon, 20 Sep 2021 03:11:02 +0000 From: =?eucgb2312_cn?b?veIg073Dtw==?= To: "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: =?eucgb2312_cn?b?u9i4tDogW1BBVENIXSBtbTp2bXNjYW46IGZpeCBleHRyYSBhZGp1c3Rt?= =?eucgb2312_cn?b?ZW50IGZvciBscnV2ZWMncyBub25yZXNpZGVudF9hZ2UgaW4gY2FzZSBvZiByZWFj?= =?eucgb2312_cn?b?dGl2YXRpb24=?= Thread-Topic: [PATCH] mm:vmscan: fix extra adjustment for lruvec's nonresident_age in case of reactivation Thread-Index: AQHXrWqOL7jD7DKtW0yD2rnzewKybausPo62 Date: Mon, 20 Sep 2021 03:11:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: suggested_attachment_session_id: b13ff9a9-de9b-5568-c951-4c49555061e1 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [CPZjUkBdmOByuvZOrMzhwLRUlc616a/z] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c43dce68-0b44-49f1-dfc7-08d97be44758 x-ms-traffictypediagnostic: TYAP286MB0795: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 05n2Fsg3M+wFXjGYKZA8N98H1sf9EwQQjaIpFCH5QacyGeo8Uew6+93B9GRJdXA67iqQAssSxuVWyewSedDFFUtROcKAwqbzsY94YogrZvBiYAebkGrgDSiQTeZ7FkWtlryOgzPmEVyr1BGg6l/hghXjJeL/8bn+Wlm2msTdzBxrERasoPGHHUYwQwGI/n0fnATThitDvemcIju3aJKadSK0X40vh5YscKJWjukkKUuZToZ45sQXE5Ael1gWcajNOLgyK6dmRhN+UBK/kx2lHiC8cPPsP9JHve4V716tgwLW7GgDMwYix+mL0Xv3o2g0gSQsPrNSupvxZNw5mHQDTfF0B2aHlQ6Wb1bHmcy8M4YKFEO/gIxwxvR6ZshT6Tft9J834TdfSej+Y6aH68k+R2dLf2GAPuYRlp46j3gV1RPrNZhoiFntW5kJOlXQn9KL x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: gt1glhq2B951sxJoUhQvr+spWCzrimg8DZdczxadlALZ0IZiE75w0NaY2z+CRletVWPkECbvB0bqjQLbgbuSFZZxZXYLtStH+xpIUZUno/3a8z5hhBDqigZmnIk+KNZH8Z4Ac8K7npw+9Lm73l/hOw== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-18f16.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYYP286MB1115.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: c43dce68-0b44-49f1-dfc7-08d97be44758 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2021 03:11:02.8357 (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: TYAP286MB0795 Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=hotmail.com header.s=selector1 header.b=lBhD1W+L; spf=pass (imf07.hostedemail.com: domain of yongmeixie@hotmail.com designates 104.47.92.177 as permitted sender) smtp.mailfrom=yongmeixie@hotmail.com; dmarc=pass (policy=none) header.from=hotmail.com X-Stat-Signature: 8kw5pdxi813rf17wytjaeaob57jpj1z5 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B0ECF10001CC X-HE-Tag: 1632107466-402057 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000010, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Sorry, list_move can cause some problem when deleting a entry not on list any more (AKA DEBUG_LIST in enabled) I corrected the patch as the attached. Best Regards, Yongmei. 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);