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 D901DEB64DD for ; Tue, 27 Jun 2023 07:21:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5446A8D0002; Tue, 27 Jun 2023 03:21:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F5088D0001; Tue, 27 Jun 2023 03:21:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C59F8D0002; Tue, 27 Jun 2023 03:21:31 -0400 (EDT) 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 2C99F8D0001 for ; Tue, 27 Jun 2023 03:21:31 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D920A1A0887 for ; Tue, 27 Jun 2023 07:21:30 +0000 (UTC) X-FDA: 80947682340.02.C6DBAE2 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf17.hostedemail.com (Postfix) with ESMTP id C380A40014 for ; Tue, 27 Jun 2023 07:21:28 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; spf=pass (imf17.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=1687850489; 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=ahR/64jINsiqCZVs4YDhm4rdcWKbiFWmnoP23OvvNwA=; b=H/MY19I61NwPKJUuxgSP9yocNLK2/Sbs8my/t2P6EYcmJFUfYL3Vhb6FWCx9PPH/eEq3BS Wt8wUvfU9o06/x0R2uwbG71OBMrjsI2SCyo4lyw9AqHngTobqTCHWOwlfDcj3Aazaegj8F 1FIp0SlnpQq63xMh9KdDNM3hJ7ybEfI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687850489; a=rsa-sha256; cv=none; b=AMOt0P0rCu6zFCm6MgPV0zL/uT5LffNEqYpo4J0nKqWJQfvimSjOOduvEHINBOeURP+JfS FusiOcbgnel4G1qAg6++sMqwAJwjSea7o5CU9rhI0YJVE8Z+u10OK8ZftyZ1Kwh6ssuspB zThAEMU7j74TmJGxE16NKIVQXUhiDKM= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; spf=pass (imf17.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 A0B162F4; Tue, 27 Jun 2023 00:22:11 -0700 (PDT) Received: from [10.57.76.16] (unknown [10.57.76.16]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 26E843F663; Tue, 27 Jun 2023 00:21:24 -0700 (PDT) Message-ID: <2ff8ccf6-bf36-48b2-7dc2-e6c0d962f8b7@arm.com> Date: Tue, 27 Jun 2023 08:21:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v1 01/10] mm: Expose clear_huge_page() unconditionally To: Yu Zhao Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , "Kirill A. Shutemov" , Yin Fengwei , David Hildenbrand , Catalin Marinas , Will Deacon , Geert Uytterhoeven , Christian Borntraeger , Sven Schnelle , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-s390@vger.kernel.org References: <20230626171430.3167004-1-ryan.roberts@arm.com> <20230626171430.3167004-2-ryan.roberts@arm.com> From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C380A40014 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: u95yf3ajs9mx4t4mai83gygft134ytac X-HE-Tag: 1687850488-667299 X-HE-Meta: U2FsdGVkX18QnA0KT7XRL6nBS13HFWI9noyHP+W/JN0uL8sziSdyAMNiaeN6DZBa5L8HF1n/Awh2ESx8CpUdxJdkYAAyFVLqNJS6e3Uj0eqF7EekIH72460yu20+fTZVTyGAJWdPv8wNO1Eokam9TMXkTaXRrJy1fWs215bj4FiKOay9A+3n/ZiUi/QinhjFCHdB4LisvnVt2NqYQ649SsOqlrMVoziGl0Ikf/f3yFHpSAuwlCV459Kd7nGmBeSVCsQWuEoe/yKguDlGDM7zV9DIRpjtUP/38TBSTLvY4h9DDjTXHZibgmd6WDkYUZvr9eyFCYJqDzEPpoCfkF7pUQaLC/Y8prdmsffHvcgozfr/81J+hp8S9tscJQ3i8Gi8rvuiqPLe4KzcH+CQgB1cjUj54bp/iYOOsy8HVgCF6xaqmjqLLLEidZs1s2t3TV5Tz7F03Hjn2j481IM83JIVLde246puvEKhV1FHUG7PVyD2ab7lL4mYGazlaJLLZAEMfL6NNdvuk5RgDrAY+bvyJkYaYkO34reL08p/AvI+tbaCJywX93lmQdgPHwtgQJTNKyJV376Ver7h5Lx6CO3Q4VOP0z8ml8KdV2LjA4j4QwoZ3oyJeRair5YnVxdxbm0XMUO1B7wkMyp/9G6lJAX5oLY1dpCrLLmdTnPnONkuJ8wOXDptX0TW2qMv8GsB0UrPSoTQ/x1M4n63T8Kw6PDRyC0wXK/FH/Mut0W72ze6gipFnEpaqa2EQqAId/+kUD1Jx04fjLA7WUSPR8i5WFROEo63TvWBpt1uHdvChMB/N8kJrF7zmPJB9E0t3UOm9yRxjbPgoB1y3poYnygyBLyAgWlai1wSQH/k4Nesr8Ea9CLiIqdQpOGjuePLPHaYrQS78kyHLnvoM93ohOKNP90/cTL7/WJ4IbOhCL7ZLJy3LjMHrUXjMrrAPahh0D2x5Pssb7V1lGwaIy6xFWNz2gZ j0MFSb2b im+wtNXVp8ZDApUpiNSciAFNd5njtxXanUmZT+hTk2asUaZlxLT+gUCsGSCJuBmL1ZWQnvmyQ735kz79Z6t6PQaZawU9iuTRlK37U4V8t4ECaR6CWQyWyHFI5aLdQEOBkSpVOfdGvVMc+6+I7YWOuvPcCZG2ie9m7eUcfgZKX8eN085z0dZeQvjl+1a7R23/1F6SlEdGQu5LTRUKd3dUETXT4/A== 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: On 27/06/2023 02:55, Yu Zhao wrote: > On Mon, Jun 26, 2023 at 11:14 AM Ryan Roberts wrote: >> >> In preparation for extending vma_alloc_zeroed_movable_folio() to >> allocate a arbitrary order folio, expose clear_huge_page() >> unconditionally, so that it can be used to zero the allocated folio in >> the generic implementation of vma_alloc_zeroed_movable_folio(). >> >> Signed-off-by: Ryan Roberts >> --- >> include/linux/mm.h | 3 ++- >> mm/memory.c | 2 +- >> 2 files changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/include/linux/mm.h b/include/linux/mm.h >> index 7f1741bd870a..7e3bf45e6491 100644 >> --- a/include/linux/mm.h >> +++ b/include/linux/mm.h >> @@ -3684,10 +3684,11 @@ enum mf_action_page_type { >> */ >> extern const struct attribute_group memory_failure_attr_group; >> >> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS) >> extern void clear_huge_page(struct page *page, >> unsigned long addr_hint, >> unsigned int pages_per_huge_page); >> + >> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS) > > We might not want to depend on THP eventually. Right now, we still > have to, unless splitting is optional, which seems to contradict > 06/10. (deferred_split_folio() is a nop without THP.) Yes, I agree - for large anon folios to work, we depend on THP. But I don't think that helps us here. In the next patch, I give vma_alloc_zeroed_movable_folio() an extra `order` parameter. So the generic/default version of the function now needs a way to clear a compound page. I guess I could do something like: static inline struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, unsigned long vaddr, gfp_t gfp, int order) { struct folio *folio; folio = vma_alloc_folio(GFP_HIGHUSER_MOVABLE | gfp, order, vma, vaddr, false); if (folio) { #ifdef CONFIG_LARGE_FOLIO clear_huge_page(&folio->page, vaddr, 1U << order); #else BUG_ON(order != 0); clear_user_highpage(&folio->page, vaddr); #endif } return folio; } But that's pretty messy and there's no reason why other users might come along that pass order != 0 and will be surprised by the BUG_ON.