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 4D8F9C4167B for ; Mon, 27 Nov 2023 10:35:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C11DF6B02E6; Mon, 27 Nov 2023 05:35:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B9B666B02E7; Mon, 27 Nov 2023 05:35:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A62F96B02EB; Mon, 27 Nov 2023 05:35:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 935CD6B02E6 for ; Mon, 27 Nov 2023 05:35:06 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 61655C0138 for ; Mon, 27 Nov 2023 10:35:06 +0000 (UTC) X-FDA: 81503376612.17.A5F3895 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf19.hostedemail.com (Postfix) with ESMTP id 980D51A0019 for ; Mon, 27 Nov 2023 10:35:04 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf19.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701081304; a=rsa-sha256; cv=none; b=h2LHRPqYpqGTzJSoWR1XieTOJ1QTC+clHW5h+Q0IIAMYDapNY3LmO0z9OOLSX1bM2E1oOo QPP1Vug+DPGIo9hM83dznFbcQyCqcIaFucqJ+hFySydWjJnCCBwi9gayxR5atRi7m+Q+bu FFtcdpe64WHEm3wuYN+9eKZllf+PSY8= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf19.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701081304; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=d9nObUJhC3TkS2AJznwchicL66+jzwy6zDArzXs2+Jk=; b=eJqYgE8CHPk1jcsdi2LUrNXUwRgJ34Lbh5qQHzss89sXJoq/0N/by//wynbW0Q9j+uQnF2 XGHG5Zb7TISiUn6mlljyKmFW4V4uqZY30GU5vdU76Na+qohxOy/u52HB1PdfSJo2hrhAKy w8D34H7GsEjUfzzhzONMBVcdz6ehmrc= 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 35E8F2F4; Mon, 27 Nov 2023 02:35:51 -0800 (PST) Received: from [10.57.73.191] (unknown [10.57.73.191]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BF31F3F73F; Mon, 27 Nov 2023 02:35:00 -0800 (PST) Message-ID: <48417f46-d01c-48d1-b53e-d9458a1527fe@arm.com> Date: Mon, 27 Nov 2023 10:34:59 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RESEND PATCH v7 02/10] mm: Non-pmd-mappable, large folios for folio_add_new_anon_rmap() Content-Language: en-GB To: David Hildenbrand , Andrew Morton , Matthew Wilcox , Yin Fengwei , Yu Zhao , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , Kefeng Wang Cc: linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20231122162950.3854897-1-ryan.roberts@arm.com> <20231122162950.3854897-3-ryan.roberts@arm.com> From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 980D51A0019 X-Stat-Signature: f4hn3pwa3pu14dnzyuta1gdhjhashkyg X-Rspam-User: X-HE-Tag: 1701081304-279006 X-HE-Meta: U2FsdGVkX18rsryhJJHTvJftZOZrt8DbeDlIvQ0H9fSbXxEE5tqkJr88YGUAZVf6cvmRydVbdDnSCNXVH8N+8KzO2bOD1qWwUGRSWK1UpillcBPF3aQ9oo56JJaAPduWYZmKLKtJhz4aixGxMav08pupFuXscmfxmNnfaMNfXSqrqp0qoBJhzReo0KnJ2nGpCfcuCFx2ehB3nKT2L17FlEn3fHc35J1ZYFdzcGQJHEKHmMEQ0tihJbvoLN0LJj50XrVd5DPjbiwipb2ohySllEH1BjzX09NXMCPoD4Uufo+eq0pl3wssOXh9t0tyS9QFN1QS7Pw/Ye5lwGsHYfTTCSDuyBTem0qbM0KKHA/NCQxMrGysz5U39g58ifmrR7s0bE6GgwEb40//b1Cjst/JqV72UyE/mvcIVAZo4bMBnMNO94eOLUVdMa8eh1BD4MuuNFDdsV+JTvuwEhXDkJ9oK3NKYVOMaZKq54lZ+VIj8b0PiF7Xoi77vmz3E9YbHAqz8lkzqRblgQbPGusESWfKTd6fyXn+WN1iWTS7LubgScTw2LmEf9VvQho+sY8RRSjyjtN9mArUwU8oDxlTR60nu6vB9b1YqV9mclMQ8iBTzilOwhMjWtl104jD7iRvH1kWrYXEqSSV6U+xuO6t9lFoXm+J6llsOkkd2FLwzB6CACOZazkPpVTQiFIR1ZawmtlvLVlj9l6hFJ5sPDcxy/0BYb+pBAIybyLyIkNqp9GwseTfKhHeB1prVAYYYcEGZDOd43BAH5aNbjPvS17RExWY8gW+ooL8QS8RvWmXWWEK28MhpkwMutXB7G2GYq5cnBHGhcVQUWbBDcrbmqzIRC7nrVzicbZ1nWTTurTJXNtJiL7gT/ECq0J9hirhYAiDyz4XUWdGQ6SGMFtrQX2Ic9Fn1ExUz5Kxa17qjQThcXSAnxXaIvv2Yctj9Tyze40lqC7LSvVvHz+E2WCtBr9c3u2 f9AfrWiG SY75uxnWQWddMNTT1SS2wapunMMPJGpj05v06fPbhJXoJl6HcHCpC5NoJGeZ0sLZb7j+h8YgC3ED0pgOM7v5AcJK7siJIwxe92HMVOrwv0PnUcRIeuwEkBp9AjyXQhm5jR6GNNY+e8mGnpPrwyULsw4/Wfv5PV8rwGLhCcwY36FEiN+LBG9SxP2LPaw4tlD4xQWMOEpU2xt6tJptK9kxZ9CCLgZfj6YJX6VeLw0sFYbDoejNbovkLzIv1XvD7J2JwvryUlO/iOeUfUh5Xwy/6f02rvbmfc5Im+RGnuyLAI0Fo5xEUmoC7MpVgkcbti+eR7TIGtBNNAlMCoGIez7/4/blUqBsaGKVyrtXWLxcpXS9srmVwOsYJ5d+LLa/DbJ5jcsuRrZnGWaIzqa8= 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: List-Subscribe: List-Unsubscribe: On 24/11/2023 17:40, David Hildenbrand wrote: > On 22.11.23 17:29, Ryan Roberts wrote: >> In preparation for supporting anonymous small-sized THP, improve >> folio_add_new_anon_rmap() to allow a non-pmd-mappable, large folio to be >> passed to it. In this case, all contained pages are accounted using the >> order-0 folio (or base page) scheme. >> >> Reviewed-by: Yu Zhao >> Reviewed-by: Yin Fengwei >> Signed-off-by: Ryan Roberts >> --- >>   mm/rmap.c | 28 ++++++++++++++++++++-------- >>   1 file changed, 20 insertions(+), 8 deletions(-) >> >> diff --git a/mm/rmap.c b/mm/rmap.c >> index 49e4d86a4f70..b086dc957b0c 100644 >> --- a/mm/rmap.c >> +++ b/mm/rmap.c >> @@ -1305,32 +1305,44 @@ void page_add_anon_rmap(struct page *page, struct >> vm_area_struct *vma, >>    * This means the inc-and-test can be bypassed. >>    * The folio does not have to be locked. >>    * >> - * If the folio is large, it is accounted as a THP.  As the folio >> + * If the folio is pmd-mappable, it is accounted as a THP.  As the folio >>    * is new, it's assumed to be mapped exclusively by a single process. >>    */ >>   void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, >>           unsigned long address) >>   { >> -    int nr; >> +    int nr = folio_nr_pages(folio); >> >> -    VM_BUG_ON_VMA(address < vma->vm_start || address >= vma->vm_end, vma); >> +    VM_BUG_ON_VMA(address < vma->vm_start || >> +            address + (nr << PAGE_SHIFT) > vma->vm_end, vma); >>       __folio_set_swapbacked(folio); >> +    __folio_set_anon(folio, vma, address, true); > > Likely the changed order doesn't matter. Yes; the reason I moved __folio_set_anon() up here is because SetPageAnonExclusive() asserts that the page is anon, and SetPageAnonExclusive() has to be called differently for the 3 cases. I couldn't see any reason why it wouldn't be safe to call __folio_set_anon() before setting up the mapcounts. > > LGTM > > Reviewed-by: David Hildenbrand > Thanks!