From patchwork Wed Jul 19 13:54:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 122645 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp2473452vqt; Wed, 19 Jul 2023 07:20:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlGVDVm5RVZRy0y3PeLHFLQcsinDrbvXO3A7PosoZY61AZKIPhowdCP/glJDm58u350sLdTn X-Received: by 2002:a17:90a:db0f:b0:263:f3ad:64af with SMTP id g15-20020a17090adb0f00b00263f3ad64afmr1686719pjv.45.1689776410994; Wed, 19 Jul 2023 07:20:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689776410; cv=none; d=google.com; s=arc-20160816; b=XMftQwd+2W5QfVOlRKHgMgVe8qJYBRfRAXhRZFKWJihWu9LPGV7KBeFytiHN19hUQg GE6gcTWWnVo3GBhT82ed6Ke7JLYB7rDxeDBeIJaSyYLGRG+zMd62g65Ipm5u+yNDi8Ly t8SNC2iwYpjriiaWkze6yeJ07TJubWPGpxkUWFCnR2UijXVJvolmvLo/png0POBjQ6ws OR00GAPiMm0mDfb7z0uFJReZt6/ziEg37AuF9B95fFrzw/Af9Del6iiFoM7pX4J1ZBhT IdSPy3i7JM2kdJSgpoXB44LW2BNrIhe4eqiEAqnH0f9CCJuUULBKin5oGj8di8Mk/IMR Hz2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=hNL1y3SfunmfxSUTvIEH48/V1tE9GSr47MXZQeskAHk=; fh=THi7eKCjaWcVibUnyL3CTjC3PwRMYqk9JChFkSe1vn0=; b=A4fKiuPKHrcW+iiFnnS/kXDhBXAXmRAl8qpDTLtl8HWC5KMD4ePNlRYPv/1Awn0M05 Q+ulon+xt5VZYuKIBD65mbEO59IrA+AlOAhFDNLsg0z4RPsmuZA4+KY2k4znOigwB8Fi zD+C0+iNv44LdPZaok1AubtaqG8Q4CkNSCS7gzfGSw4MBK97eUNxh5zEpv1EfYkWAB7U 6MczlVpgpQriSA6Sx9lXEpuneMRSFZdt6Hm9FcBAlT5B0mcu2B1UafsSeHFk4JZs47nb f/Nrl8jkm1X8xiapSAgO/NfAM9UrzzldV1JpTJZjc6HW5bRHsxfVrKs3KSQSd2kLU8Ml 6cTQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id rm2-20020a17090b3ec200b0025653dc2881si1592032pjb.23.2023.07.19.07.19.57; Wed, 19 Jul 2023 07:20:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230349AbjGSNzK (ORCPT + 99 others); Wed, 19 Jul 2023 09:55:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230020AbjGSNzH (ORCPT ); Wed, 19 Jul 2023 09:55:07 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 64BC312C for ; Wed, 19 Jul 2023 06:55:06 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6CEF3D75; Wed, 19 Jul 2023 06:55:49 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 90B6C3F6C4; Wed, 19 Jul 2023 06:55:04 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Matthew Wilcox , Yin Fengwei , David Hildenbrand , Yu Zhao , Yang Shi , "Huang, Ying" , Zi Yan Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 1/3] mm: Allow deferred splitting of arbitrary large anon folios Date: Wed, 19 Jul 2023 14:54:48 +0100 Message-Id: <20230719135450.545227-2-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230719135450.545227-1-ryan.roberts@arm.com> References: <20230719135450.545227-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,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-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771858989892782652 X-GMAIL-MSGID: 1771858989892782652 In preparation for the introduction of large folios for anonymous memory, we would like to be able to split them when they have unmapped subpages, in order to free those unused pages under memory pressure. So remove the artificial requirement that the large folio needed to be at least PMD-sized. Reviewed-by: Yu Zhao Reviewed-by: Yin Fengwei Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: David Hildenbrand Signed-off-by: Ryan Roberts --- mm/rmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 0c0d8857dfce..eb0bb00dae34 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1426,11 +1426,11 @@ void page_remove_rmap(struct page *page, struct vm_area_struct *vma, __lruvec_stat_mod_folio(folio, idx, -nr); /* - * Queue anon THP for deferred split if at least one + * Queue anon large folio for deferred split if at least one * page of the folio is unmapped and at least one page * is still mapped. */ - if (folio_test_pmd_mappable(folio) && folio_test_anon(folio)) + if (folio_test_large(folio) && folio_test_anon(folio)) if (!compound || nr < nr_pmdmapped) deferred_split_folio(folio); }