From patchwork Thu Oct 19 13:42:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhiguo Jiang X-Patchwork-Id: 155566 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2010:b0:403:3b70:6f57 with SMTP id fe16csp391532vqb; Thu, 19 Oct 2023 06:42:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFzUyhFa1+0hpXUCy6Q+IPgrizBKxvkmAjAgf9pAKj1kZ/eCoQIjOLIi5/8vtNBKNnHldiH X-Received: by 2002:a92:cf07:0:b0:357:a095:65f5 with SMTP id c7-20020a92cf07000000b00357a09565f5mr2430364ilo.0.1697722966228; Thu, 19 Oct 2023 06:42:46 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1697722966; cv=pass; d=google.com; s=arc-20160816; b=fTqWE9TbJcdM98PoNl59p83IA72C8vinDPSsKBvZ3+f6aiFW5jPPtJ0B2oMAh+b8WK tE6aVKwEBMTlBhT3+RUWC4Sh4qpgfMVu3tKvCZhEPVtZ+PQUn0xCqPgUy+tjzqe/GMRN mR9GOnvh8ZcbZ3lsWDMvENBJo5nnMuO7ERulHeOPmzus+tvcct6r5bwU+ZK8KyMpyt+A +rtMO2tsKXGCOIsMXT9NCXsnDstXIM/c2C6tiAtLmyhBrOfwLlvtMZqijZlo5Y3q+aWz 3ePkxzZKwttqwE4c6tz3wcx0KdlmM0oqeOYrHWQnAI4eL3mwZzw0l+ZBxY3RwwIgI6Hh mM7Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZVCbfCgY6uphg+FnjetqR8dr7AX+sQTlt8WYhEGY+o4=; fh=c2eYxmN/YNr2ouhP31X3BrePKjLzNfOQt6lh5667ppQ=; b=IkkY8n59Gpwq3yrtmo50n1WacEk5RFbnASDCl8UoDyh+v4rwKhK/k0f+tDPAmtxw8f s9dlJl1ql+tewMz1ZdK5+P9KnRIhA2Wd7sr7VMnIEfHqy5O4dsTQEmg4zw7Pzkf7W8TD /EgWXLe6zc+S5n5H4/Pp6OKMdMd5Z12qc6dQrKLgJzsKTQqhhU3F25C9n2LHm0nIu/Gz 2IEEKHqEGM2dYylfEdhRIkhE2vtf8jJKj4x5MHpe9GHOPNrs9iVGS15sqvAaRVO2xYYJ bqdtsE5meV8NBXHi/A6sTzYVjLtV0ZsLiVT+c8J98cXnLKrr/ulDkZwLYtW+gQE+SlOy ZD5Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@vivo.com header.s=selector2 header.b=PIHxwSfa; arc=pass (i=1 spf=pass spfdomain=vivo.com dkim=pass dkdomain=vivo.com dmarc=pass fromdomain=vivo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vivo.com Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id l189-20020a6388c6000000b005ac7b5e2357si4439984pgd.378.2023.10.19.06.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 06:42:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@vivo.com header.s=selector2 header.b=PIHxwSfa; arc=pass (i=1 spf=pass spfdomain=vivo.com dkim=pass dkdomain=vivo.com dmarc=pass fromdomain=vivo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vivo.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id C7AB38313D3D; Thu, 19 Oct 2023 06:42:43 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345878AbjJSNmf (ORCPT + 25 others); Thu, 19 Oct 2023 09:42:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233216AbjJSNmd (ORCPT ); Thu, 19 Oct 2023 09:42:33 -0400 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2091.outbound.protection.outlook.com [40.107.117.91]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC8EF124 for ; Thu, 19 Oct 2023 06:42:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zq+O0aZ3bvv1b9R1LihihwBAtEmGba5r1vZjf5UXQZRXTZ/iVKZqLslW5jlGA+v0fTOabq2g6wix0B6wZILxFAgC2+c27K/qxpqmQ/FqtPkKBquac4Wt1mKjYXE6D9Ze0ci6Zudhdsh+0Josg32R/IF8YhQ1hmJj7rwVHaDZz5MYPEy201ntTAiCyNDMZ6xAL1rBo22BwJr8w28SuI7MepqH/Z8HzBW2Ga0DmH0bneGLPysop0w8tZWzuua1gGdz0EPYXaVAjHIIdqJ9hnS9iF7ByjbOFPtwiWnasbf95IVfRQLOZjsEFCqVH6SMU7I94BRRqyNcqUgMqOO89bfwbg== 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:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZVCbfCgY6uphg+FnjetqR8dr7AX+sQTlt8WYhEGY+o4=; b=khvHRX4tsy7+nPHcSZgo4mBTzMVR729TH6c09YTh4oJGxDE5ucrkl+iBt0hGx/oHBaZSB69OopgMIVAtRVxF9Te80upYJUROMKSnapp/wjD/VUjGGLt78kcc/3Tb7rKPbJfC9/uKbPitz+7rKbKlSai+DF+ozp0dVQC3TummcAT2yvfWzJZZlhfe9EiXoaEqa8XQ62TvczK/fZ8JvZQahh94EyGofPqRFInjDBi1+o3k0Z2WOcBu09G3zpB3SVyq1MbZCpB7FOtB2cZBEKM0lWthMyXCs4bCkKOtsE46mXWoqETQnFIMEua4GpNvYkidC85M6JG83WtQ0GX+wkmyRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZVCbfCgY6uphg+FnjetqR8dr7AX+sQTlt8WYhEGY+o4=; b=PIHxwSfaITQXMCdj5dnqk3utlwjDvfASQ7KXYXvwF2nHvXF9l0cM1ze3SvuOW2j/Yd3Erqb/3yj+bQ4i2MSjweLTdb6GPmWnLs3tTT7GNf91G8g8ufjbm38P1QJMIbvxmD87dMjiC217DsfHLTz125kvNmuygv+r975cqvFtaKwvNQ7x5kwBJgitP06FxmkT9BPmajYxkIp9RkeGWFRs1dm8HAOFXx8FcUyZcUzx4i6Q0j3ixa8G/zes5Lu56pdnl68+1BeClrqRTzS/j3qCMDUvZTFoSyCdQ6CAXTNDvStnp7PkHqV6WLunVXbqnnT0b8yFGQMyyPHI2IOQ2kNv4A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from JH0PR06MB6849.apcprd06.prod.outlook.com (2603:1096:990:47::12) by KL1PR0601MB4100.apcprd06.prod.outlook.com (2603:1096:820:24::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.24; Thu, 19 Oct 2023 13:42:25 +0000 Received: from JH0PR06MB6849.apcprd06.prod.outlook.com ([fe80::32d4:1209:6b36:86e5]) by JH0PR06MB6849.apcprd06.prod.outlook.com ([fe80::32d4:1209:6b36:86e5%7]) with mapi id 15.20.6907.025; Thu, 19 Oct 2023 13:42:25 +0000 From: Zhiguo Jiang To: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: opensource.kernel@vivo.com, Zhiguo Jiang Subject: [PATCH v2 1/2] mm:vmscan: the dirty folio in folio list skip unmap Date: Thu, 19 Oct 2023 21:42:10 +0800 Message-ID: <20231019134211.329-2-justinjiang@vivo.com> X-Mailer: git-send-email 2.41.0.windows.3 In-Reply-To: <20231019134211.329-1-justinjiang@vivo.com> References: <20231019134211.329-1-justinjiang@vivo.com> X-ClientProxiedBy: SG2PR01CA0141.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::21) To JH0PR06MB6849.apcprd06.prod.outlook.com (2603:1096:990:47::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: JH0PR06MB6849:EE_|KL1PR0601MB4100:EE_ X-MS-Office365-Filtering-Correlation-Id: 50b87a9b-9ba3-44b5-57f1-08dbd0a93a7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vbiBw1XMl0txTun8RDH29Wd/0b2lj8DjVhJqQxuPf1yLycFSEvwg2u6F9Vi+xPpmJtxBs9zwq0TszyXKYoJH0hW5dCZZa2AxQyLhUzkBgD0SrGMselkBPd39k5eJTCcjadFVDwfSZceS2QaRGcAsRcA/vIMDu2mrmEQhmTO4ELiP4oCu3RKUshRpSEp+PMw/AhKO7i/0lhMA9S1oOZlKsdccgWh/rJ96qo5zsjtjSdLT2HLGTtudP1rLjg2MvY7w4fZmO8/KBONXv+2WZr72BQZm3IXKpZV+0x9c/5+6EE/A0Ao6RYnHu8vvo19ErQ0ntU+x3KFVv6KdbKQDnH8/AeXFlW1cQpEti2CHV0VztTHgHQtpS5RprKPWGRLpuJzEecIRDnvda1bIJpGO8b01QJ8PGc5nOTIlL0Y5QpnJCTvPy0vvRl1XRu8jNWejPPOlnrU5k38LJ6BwBbmS4SUv/j3SMpW46ueQYZjqRtS+j24opY5sNWGy6/KWHjNbgrZTogo0o1Iz+S+U7Yc4inpAYCiz9jkj+aBpPBxS1apa50ilx0u2heNRfk9fr81g1Y9lKrdrlHXKWTDxCLGEwr97Lu68Zn1Fkdx1ss/Gpc8dpiNQtndLd0jLUKfBvNhDabEWbvbHhJDuGIVP9XTxn1PoRA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:JH0PR06MB6849.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(376002)(136003)(366004)(39860400002)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(8676002)(52116002)(6666004)(2616005)(1076003)(6506007)(107886003)(26005)(66476007)(478600001)(316002)(66946007)(8936002)(4326008)(66556008)(6486002)(83380400001)(38100700002)(6512007)(2906002)(86362001)(41300700001)(5660300002)(38350700005)(36756003)(14143004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZNeDOHIYXvjbV1P4L4YJha/ivuTB9MAN7jGUCjS8onVTvnUXMBGMhrczIB5vOpv7jQZROt9ouFAtk83QVBLozNmnlT3gCNyG+KVjwEj/WBIqDYtbL7TrSPHBJ2vh7yeSEd5NFX91EUhegTH8eBhMIJMS76RVYAz3GMpPNcBhGB8qVlcPcno7MGHyyMKOsiavklKVZzg3hkr01mnxz7x6s2mBTl1iRCm4+B4FqrySAA0GvcT7jXdrym9zWAWtiwHnCUMSolzZQ3UDYSRmproecBKMEIPoIx9taAJxX1d2g/dm+ZplJIs7M0+5oS9qxw6nlUv4axIB5HqRYVV2GxgOMmhI7EcoTFsPpA7MZDCX9yH9aHa12RR5uX0QKXsZcW+jVs8xoEV2uKChHxWsO4RkNkqPE+UEw3fqDPILz6UvblmTP694PvjfSSG7Rb1ZcLQmLw2EKklOU9jkkPDjHtpWSKqaUKgU9s9gIIAzRUWU+oXGHZvhQ1/EjNPbCwtWk27ALedFlFg6q/dVqhJeyQQGPA67aR9MalFzTRt9flbclf9elPIEtc9eQEp5BSJb+JhtvQDpC/10UQCiZNCcfCpH3oSKk97dH/NhFV7OL57U01Gq8HT/4eXOMBCgtsP7XtQzTVuxiHrciB4txnYUPzqBoJBI9aByq8N0rNvMQyoqoZjunH5F2T30B5sy1s4PNpbw84pVVBecan8NNOvcMyOl5VlLKNbEcbICF8GchnweGOdQZyIIoVZsOWCMwwk7LY1WbdG4syJUvotJAmbCqF/GKAtie5+eXfeW0InFFhMba1rVAkPCoDCu4tyD52hprU7VKawet+4zBnvJEtpTbb9kIgsJIdvkwoY0gNMryiMYSgWCoJp6D97WpB+QpYwqrgy82j05sydD7bg7lrzDF7KrTZRsZplRrC9xrdSqaVu8U6p4d7F6cnL4JVaVkXxJKtIqGAsmPIFAiXVpPzdO597KGbIyuSmcvc7KtaCZFzCoW7xoysZaUQBK1QrSENqjTk/xWtNXlRDTMPCDBJ3ULWiU3Z+oDZVhwL7M+e4Rn2sK/KBE9jKkEMAkv9YWoNpdckDVnkxrM8t2r9bFg6u5Ni+JAUivvoQqOWX/3kg6NkZMomwG2wxEAg5hglMGraL18JRfU77xuFbKgTQf8JM25umVZraHaYsmcrLbmmj9EKE4MzexgDt+d7PFLiNcucvjxblNnQRpr+dGxfol8Sr27OQi8oYb9tkEwLmK87uu6gHFY3jRxiCQXUtxbK50XqA/U3hfksfqBEY7vnWCC3oNsZ6mWdqlb6HLB4/Iumqxb5M4wDD1TuLFgU+2e7tgOsK5Y9o7vzVAF+06ZB1fGEYsV+JKZ26qp6Qkz0mi5NB188w5NGM42stIa2PIl3ZqOHG8hnbEuBFrCaBn3Ti+WKbv1+tXSrq8H3fME++XtQ+heJVDqy6aFbhZWdztloMHQUPcfgH1wsDOCImM9/TjFxzscySuXFemmmfasTZodOj4YEL0ZjvK4BgdUfzobk3byps8obu0ype6JKGYel2d+dVuELIaVU6/ppQOcEzcFOjd+63O8i8iGzFVVjCxOC4sAG4bxRnr X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50b87a9b-9ba3-44b5-57f1-08dbd0a93a7b X-MS-Exchange-CrossTenant-AuthSource: JH0PR06MB6849.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2023 13:42:25.3689 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1u3HQh8zdjHXZUEe6mnxqCoZ/17xYNYbHRcWwyAhznrP5CHjd205wVQqrjabqZvamJSUP4maVXoqyMpypyfjhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB4100 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email 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 (morse.vger.email [0.0.0.0]); Thu, 19 Oct 2023 06:42:43 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780191556970750610 X-GMAIL-MSGID: 1780191556970750610 In the shrink_folio_list() the sources of the file dirty folio include two ways below: 1. The dirty folio is from the incoming parameter folio_list, which is the inactive file lru. 2. The dirty folio is from the PTE dirty bit transferred by the try_to_unmap(). For the first source of the dirty folio, if the dirty folio does not support pageout, the dirty folio can skip unmap in advance to reduce recyling time. Signed-off-by: Zhiguo Jiang --- Changelog: v1->v2: 1. Keep the original judgment flow. 2. Add the interface of folio_check_pageout(). 3. The dirty folio which does not support pageout in inactive file lru skip unmap in advance. mm/vmscan.c | 103 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 37 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index a68d01fcc307..e067269275a5 100755 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -925,6 +925,44 @@ static void folio_check_dirty_writeback(struct folio *folio, mapping->a_ops->is_dirty_writeback(folio, dirty, writeback); } +/* Check if a dirty folio can support pageout in the recyling process*/ +static bool folio_check_pageout(struct folio *folio, + struct pglist_data *pgdat) +{ + int ret = true; + + /* + * Anonymous folios are not handled by flushers and must be written + * from reclaim context. Do not stall reclaim based on them. + * MADV_FREE anonymous folios are put into inactive file list too. + * They could be mistakenly treated as file lru. So further anon + * test is needed. + */ + if (!folio_is_file_lru(folio) || + (folio_test_anon(folio) && !folio_test_swapbacked(folio))) + goto out; + + if (folio_test_dirty(folio) && + (!current_is_kswapd() || + !folio_test_reclaim(folio) || + !test_bit(PGDAT_DIRTY, &pgdat->flags))) { + /* + * Immediately reclaim when written back. + * Similar in principle to folio_deactivate() + * except we already have the folio isolated + * and know it's dirty + */ + node_stat_mod_folio(folio, NR_VMSCAN_IMMEDIATE, + folio_nr_pages(folio)); + folio_set_reclaim(folio); + + ret = false; + } + +out: + return ret; +} + static struct folio *alloc_demote_folio(struct folio *src, unsigned long private) { @@ -1078,6 +1116,12 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, if (dirty && !writeback) stat->nr_unqueued_dirty += nr_pages; + /* If the dirty folio dose not support pageout, + * the dirty folio can skip this recycling. + */ + if (!folio_check_pageout(folio, pgdat)) + goto activate_locked; + /* * Treat this folio as congested if folios are cycling * through the LRU so quickly that the folios marked @@ -1261,43 +1305,6 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, enum ttu_flags flags = TTU_BATCH_FLUSH; bool was_swapbacked = folio_test_swapbacked(folio); - if (folio_test_dirty(folio)) { - /* - * Only kswapd can writeback filesystem folios - * to avoid risk of stack overflow. But avoid - * injecting inefficient single-folio I/O into - * flusher writeback as much as possible: only - * write folios when we've encountered many - * dirty folios, and when we've already scanned - * the rest of the LRU for clean folios and see - * the same dirty folios again (with the reclaim - * flag set). - */ - if (folio_is_file_lru(folio) && - (!current_is_kswapd() || - !folio_test_reclaim(folio) || - !test_bit(PGDAT_DIRTY, &pgdat->flags))) { - /* - * Immediately reclaim when written back. - * Similar in principle to folio_deactivate() - * except we already have the folio isolated - * and know it's dirty - */ - node_stat_mod_folio(folio, NR_VMSCAN_IMMEDIATE, - nr_pages); - folio_set_reclaim(folio); - - goto activate_locked; - } - - if (references == FOLIOREF_RECLAIM_CLEAN) - goto keep_locked; - if (!may_enter_fs(folio, sc->gfp_mask)) - goto keep_locked; - if (!sc->may_writepage) - goto keep_locked; - } - if (folio_test_pmd_mappable(folio)) flags |= TTU_SPLIT_HUGE_PMD; @@ -1323,6 +1330,28 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, mapping = folio_mapping(folio); if (folio_test_dirty(folio)) { + /* + * Only kswapd can writeback filesystem folios + * to avoid risk of stack overflow. But avoid + * injecting inefficient single-folio I/O into + * flusher writeback as much as possible: only + * write folios when we've encountered many + * dirty folios, and when we've already scanned + * the rest of the LRU for clean folios and see + * the same dirty folios again (with the reclaim + * flag set). + */ + if (folio_is_file_lru(folio) && + !folio_check_pageout(folio, pgdat)) + goto activate_locked; + + if (references == FOLIOREF_RECLAIM_CLEAN) + goto keep_locked; + if (!may_enter_fs(folio, sc->gfp_mask)) + goto keep_locked; + if (!sc->may_writepage) + goto keep_locked; + /* * Folio is dirty. Flush the TLB if a writable entry * potentially exists to avoid CPU writes after I/O From patchwork Thu Oct 19 13:42:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhiguo Jiang X-Patchwork-Id: 155568 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2010:b0:403:3b70:6f57 with SMTP id fe16csp391688vqb; Thu, 19 Oct 2023 06:43:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH8OugXd+jfZ3sHUfao7VEIbGzHYxJIeEpOITd2u7Ez/ngc146ubJX4G+ij6DqyMEMqRgiw X-Received: by 2002:a05:6359:b97:b0:143:96ac:96ec with SMTP id gf23-20020a0563590b9700b0014396ac96ecmr2199150rwb.25.1697722983647; Thu, 19 Oct 2023 06:43:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1697722983; cv=pass; d=google.com; s=arc-20160816; b=ZR4Wy4grvE3BpZ9gYnUiuP2NcOM8OjUG73thR5gzln4S2Vl8LZHpAER7qBiOF9458/ 4rLcz/w73kfrgrGZ9z2O4wT9rL1j9D0JztFNl6Hogh0r7qb+mD5W7DWW75alMGeXEkyq O6zHVVxXGf5nQN+MZiGmLTpm3RxHnd6wmGON2i+C68m+XHwkg2GiH7BGYPbjX2cQCb0m EYh/C8TxQoBSVZ9OVsWWt1NjJxfQRlwZWf8Y9SGOukfXAd1bQ1SV74LGdHcObkMYJW/2 CJkBBe0IYx2gBJW8l5u0Pi3j2lv9uXPEb/SA9kJqRaozCTo54Pt7pwdBlqO/fyJ2bQSy YHwg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=G+W6fmJ72ArZzY33LmCyBv0xsV450yR0iejgRMpA4iw=; fh=c2eYxmN/YNr2ouhP31X3BrePKjLzNfOQt6lh5667ppQ=; b=EjVr92ZYj+BfMgAz2vFKkHcNNkSulbw1EiyGKtZ6cmRS6nu0hkpsYN27Hkncef443A nVdfeibkZOzLB/xaZkpxZVThzXeFDyjiCFWMQkL3jbwmMNsRNSajadZhqg6VNBAZo6mG EfldgLgSCf+rNJwI6szbhXueO7jvBOlbDLb/OUSwttXZnWHSQNyBvrvGig37bHuC0oQ2 XwO3S0EM8gM3NdleoQ05lU1KiWp3qEsgV3XHvkFkeDigCfRT8T2sRnd8+MKj1yb+5K4D bIAWkqKvwb0q9RgMWOaPkCT3WtUkoQvS92S/E59amfOiVkSq0fn4wBQ1BRaRIl7ThtAA sKKA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@vivo.com header.s=selector2 header.b=qD+xncfi; arc=pass (i=1 spf=pass spfdomain=vivo.com dkim=pass dkdomain=vivo.com dmarc=pass fromdomain=vivo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vivo.com Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id e16-20020aa798d0000000b0068e26ca7f00si6088845pfm.39.2023.10.19.06.43.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 06:43:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@vivo.com header.s=selector2 header.b=qD+xncfi; arc=pass (i=1 spf=pass spfdomain=vivo.com dkim=pass dkdomain=vivo.com dmarc=pass fromdomain=vivo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vivo.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id A31F4819D1DF; Thu, 19 Oct 2023 06:43:01 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346107AbjJSNmq (ORCPT + 25 others); Thu, 19 Oct 2023 09:42:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346091AbjJSNmj (ORCPT ); Thu, 19 Oct 2023 09:42:39 -0400 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2098.outbound.protection.outlook.com [40.107.255.98]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73B2511F for ; Thu, 19 Oct 2023 06:42:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iHr84kSY07B+RSsphp5Ux0rn81eNb0ZCbK9Sn8gj915f+JwS0HzaIbCK2ULFFJzIfioZC49FKTXfObH74y1y9xWV5zRvtyjBJ2sMI5RqpU26CFHzEcCM7mO+jVqOISb6R+mWaG8YUWIsmTvilqVMpvxyFPFgEfZEFZx//monmzyijYA1/BlJu2ReSGaDS4O9m/CkCzZBa4yO5+OXfaFWDwEmsqsCywfS77itiJ4rX0l2vZgzXLOpCX0zRY+FXTBI2L0gKq8vhCo0sFtT2zCw+mINZO2ylETeG+E3vUrcdDCxGgDDoj+5nGo7NEomeNW5VuB8NlM4m0EDs8y1xmQWKg== 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:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G+W6fmJ72ArZzY33LmCyBv0xsV450yR0iejgRMpA4iw=; b=mC64egYSKqv+/EvIFy7tGJsAD52Mu9lL2i/mZITg20Ey5lqnSLLiaf1Y78/U1gl6Mjm5JJBl0m4tSASDqwQFR/X4a04QfS627zo5Hms+bHAsnrQ+s2pUDB5zQ9Dwx8qZB3B8/P1MA5ZwHjvCXN7n/kJgHy9Yais0PUz8UWSIOnM4VbiFEb3OADtwUKwfqgxCd2cT9xwWz7N683wpD/Yv4KFQwSNpTXWatdf9Q80S0MN1Rlo0CkgACIjhbgHrkN5upvHbWq+gMB/o9RDEjpZ1JVgUVYq74sRNUVt+92tZphzoli+6JG3EbQjmjiCVViUFrPIvIGhg7Ioe1NWPuclr4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G+W6fmJ72ArZzY33LmCyBv0xsV450yR0iejgRMpA4iw=; b=qD+xncfiUk/9CmKZ/LpYvkfmwljnn/MWxnGJn0bxoOqd8ZjRt2Rd8LTsSX9FwijGHjEp07GA4QRQKelhbyWwNLy72x728Y9aSvmhUUXll+KhhcPF+kb2yDCw0gIWqxL60Og7ArFLcL66I0MxAhH545EYXQeYNiLS5WC0j/Ls0C+zw0yf1dWoiUnMo5sIeYcq0IaJrUoYjqwPtD72fFa6VE0an1XhjacYwL5xfT14x6bJ5mI8uc38O7+a+ziTWhOAElcCf4hRa6hc0uile0GTbxcyQiaYFQvslThy5hwkBJZ1UH2zkAhNZN1ENas41GRTrL3xN4nPhbjjbILz2ygBQA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from JH0PR06MB6849.apcprd06.prod.outlook.com (2603:1096:990:47::12) by KL1PR0601MB4100.apcprd06.prod.outlook.com (2603:1096:820:24::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.24; Thu, 19 Oct 2023 13:42:26 +0000 Received: from JH0PR06MB6849.apcprd06.prod.outlook.com ([fe80::32d4:1209:6b36:86e5]) by JH0PR06MB6849.apcprd06.prod.outlook.com ([fe80::32d4:1209:6b36:86e5%7]) with mapi id 15.20.6907.025; Thu, 19 Oct 2023 13:42:26 +0000 From: Zhiguo Jiang To: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: opensource.kernel@vivo.com, Zhiguo Jiang Subject: [PATCH v2 2/2] mm:vmscan: the ref clean dirty folio skip unmap Date: Thu, 19 Oct 2023 21:42:11 +0800 Message-ID: <20231019134211.329-3-justinjiang@vivo.com> X-Mailer: git-send-email 2.41.0.windows.3 In-Reply-To: <20231019134211.329-1-justinjiang@vivo.com> References: <20231019134211.329-1-justinjiang@vivo.com> X-ClientProxiedBy: SG2PR01CA0141.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::21) To JH0PR06MB6849.apcprd06.prod.outlook.com (2603:1096:990:47::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: JH0PR06MB6849:EE_|KL1PR0601MB4100:EE_ X-MS-Office365-Filtering-Correlation-Id: 863f265c-b576-482c-42c0-08dbd0a93ae4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o85Ct6fU1hRIJlr4fvQgZ4xljBU6ZeMbcJOWw3UWvRHQxZU2BTYcwF+TFSDM7w6WfGAdUeWCnnC7Q4iLxBxqC1CX+WJTgfvVLqcs6ylH1XiJyqnRPXKMoE1ue+TpfUI1+X7GHJ3VH/qANNnWxzO82U5hR9E3HPs1eikVQDRHO87uOFuxmwlN6zsaVQ04gWLVcG+yWF0WlgICZXVa21glkFZc4PxSAI54e6UXOGc4uGUQp69YjWZCGF5E1Vhw2JPp7heWrZhp0UkN6ymygcCV/nzo8dELABQ5yCTPGSMlM6QSUFeV6TtIyP2iBOmhMmd4bPRaSMNGLdqzsjR41XsWjyDGSM5p2TLvaJandXp4ShbH2arohIc4r0O+D0fJCLzfBXIXbZsB4cIvGXWJ7ENpcNZ8iiQ8F5azMxi8PDu2wwd9jB8Yd346SEZUANsSw6mv3jqCb0o7+bwTU7Nd+h7oI8LsuafrcM4xa1K9NE3WhbJDFsVeQDReYG17qAQxnm0JuiFD/v0cT4hSwoMCPT/eUkGvbTnSvJqLpsUqzu8pnZNCwHfLXWQZsCrNXQpiMqvVMRC8LgC9g2jsgII+1NeY39UU3Zw3YIM3vih9Ut8CnZFuABmrKR3unC6/+gXTx4bEOSxEz+DzYUE1wBy88+0ilw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:JH0PR06MB6849.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(376002)(136003)(366004)(39860400002)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(8676002)(52116002)(6666004)(2616005)(1076003)(6506007)(107886003)(26005)(66476007)(478600001)(316002)(66946007)(8936002)(4326008)(66556008)(6486002)(83380400001)(38100700002)(6512007)(2906002)(86362001)(41300700001)(5660300002)(4744005)(38350700005)(36756003)(14143004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vxuWMr/qkh4P3rDyBNzchSrKLXEPXnT26oCMHv1XUzAtgWlqAYT+DitUl/0/rV8puTI8+NtJZkEuPOdB6yD/OmamNZaX7ChGg8GdfN8hxCr7Jk7hCmS/p6YLvISP5QfJ3nS+PxOHVPwBVAa8GrZKnGYiw0UQqUyrBQK0WJkA0wMppQuDqZNctHXJFpHikkU/CSwsbAwzfX5uPezpkePy+Lgdtq50yBEaX/4vtFbefPMNNJySZOwp1riWXXhLX5X3Djad0y46qts7+HC7KXx6jNQEgIgl0GFFBlATCuARWtQQPRBgQoSKDMBiybQ5Wr6d73kMZ5qVcukRzb6/JitMD3hWi4nS0LF0DI+98dB0r5nLMOHVJY4IA/eVwJkoiYIR+I33yVNK8edv7vl4pR33Os3sA4d3xS+azX9bkURkRlypurIQAExmkJc6lL1QTRP7Q6tlJpeTFEfguXqqOd9DbuZZhjiZmqHcZdEt4b1VdjSqTIAE5xaWnRQis7R37rMA/tpr+8sKcbSLIWR1OTmof+LFhGxbR4Nt3jV4qP8Be7iSLGGgGWHgGNXm7KTZ9FIlB4vaVkNPz488wug2sOIfBNcogI82TRQqEBXj+V+TNFdauhBkYu4DvEUKxWXtrK0lBJ5Cxvuqg5XlQtSlvY/GGCGoB/cQJfC25ucp058fW7VZfbAa1T0HlYIQlv1rwd/jOr5Iqt06BQwq2DH70mltVNZm9SoBuGEY1vZDej6q2XVfOcHFKuvfL3rN0VQ2KABfaY3Diqr9ahLXdIa49Bpx4/U43EHpbxDTEuwqeKWweLr4NgN2qMsurCWmkuSE+x7wziB5dSm8naA68Mbc5QqcotYHBKbrdQQze6pbWhPX+AFFKceZXmKWsWTFZzvJBw0P0JMoKnKjXsnxP68b2056Vy5Fs8SdYOqcDryPip85xTzEIdmwaQB00YppXXhrXNvuf5cH8NWoevTI+pH3XUqnK0V9ihTlpwTZAiiIb1ErBhOMdp3jVP2ixULrJ9n/2jcllBdqgXhJBNaGfk1zJPfAIN6jUTWghtsvP39+xFRMCSgGfNasVGENiRf5lJ8olSrFG5s23OxgTv1Z3VHZCSOj1Dl+aeMK+I4ySg29HClt4kaSxyv0GU0EXwqgFsO/pw/2XcHGT/KWXiB4uxM3kEV+f0Xzqo+gmwvPWpsn+RVcYCaFOgAdFuJKDQ29LpT43gkFwkIj4shkzd+hXbdDrJ21OF5M8poI5t6DF7NgKTpRt+iG4lky1lPOSMrCicnrFQXqSS8QNQPo/5Bi24yUPG9UuM/KQjtS+K7vwNSEOh8cGS2dVQD5MCOA8Fv5S+jB80dn6CSVKUj6Z1oGo6rbWpdSEY2tlXVKFmD2jLxjIvdWjzs0FPLM1veZ/kW9YMnkbXXknq4rq/H4NR3hfvKKKWPGqAHc84Gmf9XOIF2+n5mfCUWDenMhq6LKwAXtSNM/cJhJqxgumohDG5Uev1gxlsBzRwiJx3Ui7yIQM3DU4ONDWAYbfgKECT5FEXxwssJstM/BlFViBC5hP3JfiTseXnVPsOB+PtHMYtgQ1dIJlCvCy5+PLCKtlIIsaAGEsEzCzhE7 X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 863f265c-b576-482c-42c0-08dbd0a93ae4 X-MS-Exchange-CrossTenant-AuthSource: JH0PR06MB6849.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2023 13:42:26.0515 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I2oQnwRFw01JwdmNEf2Q5NOLVoVehcOzW/SYCZoYsqrfydReH3QCkOJmsTdbUL2iFgPlnxFGGu+4m7alQdft+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB4100 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email 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 (agentk.vger.email [0.0.0.0]); Thu, 19 Oct 2023 06:43:01 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780191575107486977 X-GMAIL-MSGID: 1780191575107486977 If the dirty folio in folio_list which is inactive file lru is FOLIOREF_RECLAIM_CLEAN, the dirty folio can skip unmap in advance to reduce recyling time. Signed-off-by: Zhiguo Jiang --- Changelog: v1->v2: 1. The dirty folio in folio_list wich FOLIOREF_RECLAIM_CLEAN skip unmap in advance. mm/vmscan.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/vmscan.c b/mm/vmscan.c index e067269275a5..e587dafeef94 100755 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1225,7 +1225,10 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, stat->nr_ref_keep += nr_pages; goto keep_locked; case FOLIOREF_RECLAIM: + break; case FOLIOREF_RECLAIM_CLEAN: + if (dirty) + goto activate_locked; ; /* try to reclaim the folio below */ }