From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E84E9C001DF for ; Thu, 20 Jul 2023 11:30:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 695D02800EF; Thu, 20 Jul 2023 07:30:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 61FFF28004C; Thu, 20 Jul 2023 07:30:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 499B52800EF; Thu, 20 Jul 2023 07:30:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3C18428004C for ; Thu, 20 Jul 2023 07:30:13 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 0828416036B for ; Thu, 20 Jul 2023 11:30:13 +0000 (UTC) X-FDA: 81031771506.23.107CA6F Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf06.hostedemail.com (Postfix) with ESMTP id 55C1918000A for ; Thu, 20 Jul 2023 11:30:11 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689852611; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hNL1y3SfunmfxSUTvIEH48/V1tE9GSr47MXZQeskAHk=; b=OR7tqGPUmwYxbOFPHHzovScyolCAnqRk7UckPzenl5JOuiEY/7siZWRruZR1NCpM/PUY8a HYY+SzeE8aLtIjZjPcBJ8ZvbfhvLIDABhpejQKM+6GL+60gtyT/6lC0nWBkjmAO2fK3yR+ spgmQYP5ERMZ3jvUNZQuxaJD2RNQsMY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689852611; a=rsa-sha256; cv=none; b=XQ/kOFC0kXP0p8oGKydQ0rFFGp5xowgp48ZY9VLdMVaL53NoDxKe57ZB/zoHaAH3wJ59uo VwtTUQY3wiXYh14o9ZOeHa5ZX+8E2T8TfMbVnHAyiuHSTdHQYRYbjHAVcQu/NyvoYkYsE/ Z4fLbfsbTNv7rw5wAw6XJqZOZce1ey8= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com 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 Content-Transfer-Encoding: 8bit X-Stat-Signature: 675kss5igg637nyk4u8fyyamt417z9pw X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 55C1918000A X-Rspam-User: X-HE-Tag: 1689852611-255227 X-HE-Meta: U2FsdGVkX18scUi6neQ6BHixnTNwaSoeFm0180e0YstwVUOjfY9OCyL//DrUCbrimXDp0Nwau/ErWj8tNwh3BEN7WliGrITzxWxjseOckx0bm1s1k+mtoeDY5s7zPoWsfCC9OR7Xv/DgJj6LXiKc6U7rA7whYEb32tNbccxLkdTrFkWU0ssrJgvNhUkCz3jotk3muE99SP3JclGkWYG0YCBIr5q5mzie53vlSEIXgh7a1U0MCRHuA/nic54QGMDU4+BNmMIhLyRviv61pm59iEu6yKNsO2hoi8qMVKQuNmYjyzs2xGzHAZp3il/XfTudQdRp0wjQoD7YDLu8mZAv7aOkgCRQ85ud7KGOCMQTAbvItL9oMuqeKhEhAT/6BvSloVqpjCNPorBo1U4mkb4sln60YvqBJFA7sKi+MepfV/6SNZZoQaztqXur9GH66OHPArSBBMdENB3exHl4XSv7K8kAFGOOauR9aPmxS8Qk4my+vJBflGjrfRP0/cfdN2xU//zwyMXVFlWAsAMhnJGi+CeP8ky7olMNSHmtCnXn2Le0764Xk63akupolwr1iNrTax1m8aAU0k8r9CTKw8Epr5Nn0TklAZ7r2Alaua3iyA+FnWpW8jvgXbdYRo/OIM5TR2A2iAj3FyiuBernM/ptedc1jSXGMoyf8t9nzjbte9bBo258EWHMRuGdlX0XGisWCNQqfqeBjgDV0lRxtGMeXIyGtRAjCrXBVgWdOAybchwsP/Q+jXWaEnHjCmkyRr8kKVF8Fg+cqEWtwfxuHk+23GiavwDjWByBFmqwagZDIAwCMebZgp4H5Z0f1SLj3JhGYZLvM2BnDlO9ahpW3Wtn6CoXATgPRC9EBMnkBXjZF9soW5vKOGRdF1h+zZbY1Wn/E1Sllqk93ElCEP6vFagKNeYVgK2amg+YheOJxDb6S+D0cVwb5ev3IMRC6EhFz0w+kaZFVfAOW1GUIp0YEl0 VSW+uE4A PGE3qiuA0tu0ZJchPS92DZ+2/OJAmMiNCeE7KS1RYxRUIG2Ihi+3XuMj0PtwGOj2TGt6lRqNbdEUMt5Fh3Mbb4qIeofyWjq0YjJYnCarkuIdLERmrVCAZpM3EzrDfMbt7kPi/fZXfqQM+XzAyaTbDEghPpzemi8UJH6TSYQYhh3cFcsZLYSN9Aj1dSFeR74HXtHekYQ7ruxuIatI7SDKk7E6Hu8MV3EOMpx9WQCWODcCwnRoWjUDmUw56TvL+emHSUOkAhBPMsjyj+DOY9UUdSVuZCjYM29IUOOoq X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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); } -- 2.25.1