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 66B79C83000 for ; Mon, 30 Jun 2025 07:29:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 041C76B009B; Mon, 30 Jun 2025 03:29:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F34806B009D; Mon, 30 Jun 2025 03:29:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E22E16B009E; Mon, 30 Jun 2025 03:29:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CCBFF6B009B for ; Mon, 30 Jun 2025 03:29:42 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7417A12308D for ; Mon, 30 Jun 2025 07:29:42 +0000 (UTC) X-FDA: 83611242204.02.F4998FE Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf25.hostedemail.com (Postfix) with ESMTP id 34E89A0002 for ; Mon, 30 Jun 2025 07:29:39 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@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=1751268580; 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=LHrjr0ENV2ECnNvUQUIRiRqwekV6IPMnzz+eTxqeIYE=; b=lRuxmf0TsaMKsO0PhNwxZ2qeXsIIfQ7AoqqiPrSC8iwe4mbjHQQhzRdakBvkHedeQDCdcI ui2q1bA5MB41WfixP0u7yNhpgJVaoGRBW9wjOL8GKVhsF5EmnRGHP6Chei0rwyT4Qddrwq UK7QsYjGAmH0B+oKA6+ORlddg0y/irQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751268580; a=rsa-sha256; cv=none; b=mfIpl/K3rlocXy6JBsIRiwIGTBZRwEAVKkBJ1y1USc0J9RrNQz18atkld4KfwpfmFmRzao hRD/jki9X2IbMwRaRNZgfqBwcfwoQovES8fKpKmUe0/fesK2gZWsM1oP7R1HeqJELj6H1P Y9ATAA6YIa3OVw0Znsn7d9C/0NzS2Kg= 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 D663F152B; Mon, 30 Jun 2025 00:29:22 -0700 (PDT) Received: from [10.163.37.132] (unknown [10.163.37.132]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 800EF3F6A8; Mon, 30 Jun 2025 00:29:34 -0700 (PDT) Message-ID: <4f8b7ac8-7dcd-4cc9-a97f-4d6ab573e83a@arm.com> Date: Mon, 30 Jun 2025 12:59:31 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/hugetlb: Remove prepare_hugepage_range() To: Peter Xu , linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Andrew Morton , "Liam R. Howlett" , Huacai Chen , Thomas Bogendoerfer , Muchun Song , Oscar Salvador , loongarch@lists.linux.dev, linux-mips@vger.kernel.org, Jason Gunthorpe , David Hildenbrand References: <20250627160707.2124580-1-peterx@redhat.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: <20250627160707.2124580-1-peterx@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 34E89A0002 X-Stat-Signature: uhpx9me9sx6z7xfb9nrqn3g4ezyi6ik6 X-HE-Tag: 1751268579-70069 X-HE-Meta: U2FsdGVkX19cjBBIHu+Ujdkxygn6TaYtbal752Eb/hhH5xV30ekEJ+Ickmvhb8zaB2NJr6jZBymk754TFvSna8Y6VGVvdjE14VTOlqHjQjcn5zG7ZXgOlYCEb6p4LRzV+BntQPj9xdooPJ2XspydnT0KCFUgWIeT6xn5zjj6RxL+4gegvNZOH0nv6P4aLVjSt9/4WxreDyEEpCnxQJcb00xYYz/58RMNtWzdHqCk/tWskhjWzieM5OgxG36hLDJ+5YcKFctMvp2b2eYZCUF8JRl9r/oYNolAc1f4XuR3smO2iF3AYEuUqoOKEf/p5630/VuR1po3ZXWWlaGpIbgWM+0gJhn7+5Q9Z2bCQuks2/OZql5oPA46pcfS1oEOQPH/uh/wR06WN/ObsA97XLeIx5hjTQNptlYlD36Dq/42+oMh5NM111NTVQqafV9DFksdy6DOlFDz/GW7sa9UR3dGOpMLHKjvaf6IGyoa4AqWwQOIOn4me2jTv5swrKnJDiSjhWUL408SJRSwNYA2XsqRMX/H0MABmmLxgEZzvEgZuaRXxRvkRXbjM1NPMEAXOR8zjXVQlHznfkBebbSfzzPjl98kF4D4trEyLTSk4BcR0SEWMZLOujIm9PLxagDmtA48agJWbQXcsRaxzVzhPZbl4l594x7N+G0HPhK2Y/BfrHPmCCEVNraV6sw3otR++3F6NEvfVeb2Ok5H1FMjgOIqJtqOtTKiT3ORtGIEL1EGEym9U8WHaSmu8KG8riHncjBcFHeQGs+ujxhH146XH8OgdEyNoZwCXAWiAxuYUkKNYMS2EFBkTNq6uPQnI3T1CuBLU7N4PImwBLk8q84eGihpvCBUQdpLMAF8EPJZ7/oH0+XJk/szXNQCwdWF4K+yUVDEiery/eNayhw7833pGUhpn5Fp2fS+3Ri6PWOoEJxSR1YA8biAPzco2XpJS4dzKrBmIrD0sSrVsJFhe/B4fOc xmGSnAHt E4Lc1WNh2NNh8/vn3WpBcQXeJStdbQiTf8/+peW4cwzE/Vb6VQJXP6Kp4CgOPA8RI1Hzld1nTp2YJXLtyYlqdyXjFabH2tjs7eh2V8pAVqPEvXhoxmu4Er2aAldXUwILfUFfj9jdGGw1gLG/g4BX+jTPRBYQBk5x0db2ZYiOyM1HBWZmVECbievxKEEmFY/T286nR+4zvyq42iz8QGn7B650eOXP0+Hyoni2FM5JE9GN46vbxD8UDT7gF1hyBPfEx0ReR4cf5Mu5B29O7dApX8mkiRppw6p8pfkW3k8XrP4IPNrWeyH4eKdNVO+Z1aTKFqXSv34UqR8xQN5xAoq7GkSdkVE2v2nnBtfWl/fx7C7N08/0SI5c/7PtiPNJiJ1xo5VD6 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 27/06/25 9:37 PM, Peter Xu wrote: > Only mips and loongarch implemented this API, however what it does was > checking against stack overflow for either len or addr. That's already > done in arch's arch_get_unmapped_area*() functions, even though it may not > be 100% identical checks. > > For example, for both of the architectures, there will be a trivial > difference on how stack top was defined. The old code uses STACK_TOP which > may be slightly smaller than TASK_SIZE on either of them, but the hope is > that shouldn't be a problem. > > It means the whole API is pretty much obsolete at least now, remove it > completely. Agreed, this API is now redundant. > > Cc: Liam R. Howlett > Cc: Huacai Chen > Cc: Thomas Bogendoerfer > Cc: Muchun Song > Cc: Oscar Salvador > Cc: loongarch@lists.linux.dev > Cc: linux-mips@vger.kernel.org > Reviewed-by: Jason Gunthorpe > Reviewed-by: Oscar Salvador > Acked-by: David Hildenbrand > Signed-off-by: Peter Xu > --- > arch/loongarch/include/asm/hugetlb.h | 14 -------------- > arch/mips/include/asm/hugetlb.h | 14 -------------- > fs/hugetlbfs/inode.c | 8 ++------ > include/asm-generic/hugetlb.h | 8 -------- > include/linux/hugetlb.h | 6 ------ > 5 files changed, 2 insertions(+), 48 deletions(-) > > diff --git a/arch/loongarch/include/asm/hugetlb.h b/arch/loongarch/include/asm/hugetlb.h > index 4dc4b3e04225..ab68b594f889 100644 > --- a/arch/loongarch/include/asm/hugetlb.h > +++ b/arch/loongarch/include/asm/hugetlb.h > @@ -10,20 +10,6 @@ > > uint64_t pmd_to_entrylo(unsigned long pmd_val); > > -#define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE > -static inline int prepare_hugepage_range(struct file *file, > - unsigned long addr, > - unsigned long len) > -{ > - unsigned long task_size = STACK_TOP; > - > - if (len > task_size) > - return -ENOMEM; > - if (task_size - len < addr) > - return -EINVAL; > - return 0; > -} > - > #define __HAVE_ARCH_HUGE_PTE_CLEAR > static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr, > pte_t *ptep, unsigned long sz) > diff --git a/arch/mips/include/asm/hugetlb.h b/arch/mips/include/asm/hugetlb.h > index fbc71ddcf0f6..8c460ce01ffe 100644 > --- a/arch/mips/include/asm/hugetlb.h > +++ b/arch/mips/include/asm/hugetlb.h > @@ -11,20 +11,6 @@ > > #include > > -#define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE > -static inline int prepare_hugepage_range(struct file *file, > - unsigned long addr, > - unsigned long len) > -{ > - unsigned long task_size = STACK_TOP; > - > - if (len > task_size) > - return -ENOMEM; > - if (task_size - len < addr) > - return -EINVAL; > - return 0; > -} > - > #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR > static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, > unsigned long addr, pte_t *ptep, > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c > index 00b2d1a032fd..81a6acddd690 100644 > --- a/fs/hugetlbfs/inode.c > +++ b/fs/hugetlbfs/inode.c > @@ -179,12 +179,8 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr, > > if (len & ~huge_page_mask(h)) > return -EINVAL; > - if (flags & MAP_FIXED) { > - if (addr & ~huge_page_mask(h)) > - return -EINVAL; > - if (prepare_hugepage_range(file, addr, len)) > - return -EINVAL; > - } > + if ((flags & MAP_FIXED) && (addr & ~huge_page_mask(h))) > + return -EINVAL; > if (addr) > addr0 = ALIGN(addr, huge_page_size(h)); > > diff --git a/include/asm-generic/hugetlb.h b/include/asm-generic/hugetlb.h > index 3e0a8fe9b108..4bce4f07f44f 100644 > --- a/include/asm-generic/hugetlb.h > +++ b/include/asm-generic/hugetlb.h > @@ -114,14 +114,6 @@ static inline int huge_pte_none_mostly(pte_t pte) > } > #endif > > -#ifndef __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE > -static inline int prepare_hugepage_range(struct file *file, > - unsigned long addr, unsigned long len) > -{ > - return 0; > -} > -#endif > - > #ifndef __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT > static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, > unsigned long addr, pte_t *ptep) > diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h > index c6c87eae4a8d..474de8e2a8f2 100644 > --- a/include/linux/hugetlb.h > +++ b/include/linux/hugetlb.h > @@ -359,12 +359,6 @@ static inline void hugetlb_show_meminfo_node(int nid) > { > } > > -static inline int prepare_hugepage_range(struct file *file, > - unsigned long addr, unsigned long len) > -{ > - return -EINVAL; > -} > - > static inline void hugetlb_vma_lock_read(struct vm_area_struct *vma) > { > } A small nit - there is a now stale in code comment still referring to prepare_hugepage_range() in hugetlbfs_file_mmap(). Otherwise LGTM. Reviewed-by: Anshuman Khandual