From patchwork Thu Jul 20 11:29:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 123211 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp3056601vqt; Thu, 20 Jul 2023 04:46:06 -0700 (PDT) X-Google-Smtp-Source: APBJJlGAbWP9TrpFsNY4nqAxSnNPmna4Po8MKc6JOOIa3YqDzKDulATStZ54Zq3zf6uSVg0nZVMg X-Received: by 2002:a05:6a20:3213:b0:137:a08b:8bef with SMTP id hl19-20020a056a20321300b00137a08b8befmr1935759pzc.44.1689853565648; Thu, 20 Jul 2023 04:46:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689853565; cv=none; d=google.com; s=arc-20160816; b=NYkCyUSIamImHkrM0mWe9e4zF2aNNRhz6GSer3lN3ODx/qB+3yz+wg9NU2GNoGPIYc fe2/fq39d6f6cKKDsScFX2DoePSIx+FY7Af8wStWbwMK/TIYqNAOQUi2gND9Uwgcxfi1 YuKux5YGiRHX35emqhNuFXkWeVC99O/mbbGLvGC+/7S2nrmRBQlSy/w8YgRhI3I3MEEU U+aF0pGOrF3uAajyjmZZC7WFj4YiftNG9+f9MW+JkqipBu2op4yZxWCxtfYITKNm/J28 35RiteE1dHeU1ovuSh3pyt3JbxDgW7eWB0wAx4XVK6E/ld9VlqX3Lq3r/uKLAV2apGbJ h8kA== 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=g0xiFwCd8xU7P5A6zKiVxcFqFVQ51WwzSt2qUANd7jWAFl7w8K5VB4Ox3Gwhv/QxnP LR5oYbosihFtiE3lzyooTA2AQh9y+fBwDx4mHst5qkezqFaKEwosxpTlPuamso+owSx3 wnF1JaoiX051i6jE8MPasK0eEXW/ayiUzVG49fiyUChv5J3qhHLvHnc6WcKrrgxUovQU NEohwwJXA9pFxtAAvTVq4S6eMKqD9yy7lCuCOt8J0zkjUSgcI5P2t/vRMm1rKT64mPNu LOyeEGVxO7mxWx3ujl2ot/9kOz1aLM0o1PWzsNkAYGAsmOuA+lF1o0XmzksqctITNry/ cC0w== 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 q28-20020a656a9c000000b0055b990f440bsi679796pgu.242.2023.07.20.04.45.52; Thu, 20 Jul 2023 04:46:05 -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 S231379AbjGTLaM (ORCPT + 99 others); Thu, 20 Jul 2023 07:30:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231338AbjGTLaL (ORCPT ); Thu, 20 Jul 2023 07:30:11 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 816F4B7 for ; Thu, 20 Jul 2023 04:30:10 -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 8F7172F4; Thu, 20 Jul 2023 04:30:53 -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 AD2953F6C4; Thu, 20 Jul 2023 04:30:08 -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 v3 1/3] mm: Allow deferred splitting of arbitrary large anon folios Date: Thu, 20 Jul 2023 12:29:53 +0100 Message-Id: <20230720112955.643283-2-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230720112955.643283-1-ryan.roberts@arm.com> References: <20230720112955.643283-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,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: 1771939892305794224 X-GMAIL-MSGID: 1771939892305794224 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); }