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 9F8A5C021B8 for ; Wed, 26 Feb 2025 14:01:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 16972280019; Wed, 26 Feb 2025 09:01:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 119D8280015; Wed, 26 Feb 2025 09:01:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ED568280019; Wed, 26 Feb 2025 09:01:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id CB380280015 for ; Wed, 26 Feb 2025 09:01:25 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B7570C15B2 for ; Wed, 26 Feb 2025 14:01:11 +0000 (UTC) X-FDA: 83162257542.02.6382629 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf08.hostedemail.com (Postfix) with ESMTP id 023B816000D for ; Wed, 26 Feb 2025 14:01:08 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=CGmdkjvn; spf=pass (imf08.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740578469; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QYTl6s6abT311ctNgFeH3uZqM7omSxjv0zbkBRaFwns=; b=vl2ydXoJb2M4pcJ9TaCUcytSpLS29o6u7lk6Wf0anS4AXguNc2HwT27u5QVIoFX8CiMFnX 88sDlTgDZGN3QDpMCgpSRHSWozMfmnXW1RjdzSiTxvmt8pseHqpGNQPGTHluZiOZr7glPo S1dIgNfIGN9SIXqzjBXkH7NBZy8JrXk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740578469; a=rsa-sha256; cv=none; b=W3/KAPdJwun4aPm8zU7FpZmCs2MWMCqw/cAu59V/HCyQVH0f8tWi7qPScM7uUCoAb5o0+t REt7ycPPN41rtcbKnwQiVchEBRpjbGBTMEqnELlIiCEy/dH47RpireoTfm2yvdNNnXBK+P 5NUgMsRrWwALhIDEfz8BZpAja/7XJeU= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=CGmdkjvn; spf=pass (imf08.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 51QBa535013048; Wed, 26 Feb 2025 14:00:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=pp1; bh=QYTl6s6abT311ctNgFeH3uZqM7omSx jv0zbkBRaFwns=; b=CGmdkjvn+2xajShNZ+lxlxwZELsQv8gh6iW3OHDZPYu5vp u8F93xGoPOkRUgMpR1/b1n/lui+k1OWWcMmxGkGqkAiuToroE6Xzxr3uWihTONYV 2b6tRQMkoyHD7g2tn0UKFUz2kiz97UAm3nx6Rnen149SauPAEy8YW538FfDNJPEs bwPKLAdpX/D2m1dWNEkwkt+xz9/Ah8uCIrC8V1PHT0STpnHAO3Xq6j8rOKulRbGR /MzCFN8seJbbZNyh5uPe28tkAEN3B0xSu65hZEMBWCntsWG60deG9HM3q0QYO1ur cGXdh3bF44TkTJ2zkRUyuIVq3rfteNvtbSzVDEow== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 451s19b2ph-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 14:00:42 +0000 (GMT) Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 51QE0gZg022779; Wed, 26 Feb 2025 14:00:42 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 451s19b2pe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 14:00:42 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 51QCWcBh027479; Wed, 26 Feb 2025 14:00:40 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 44ytdkjubt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 14:00:40 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 51QE0aAN55247202 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2025 14:00:36 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 99EEC2004D; Wed, 26 Feb 2025 14:00:36 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0451520043; Wed, 26 Feb 2025 14:00:36 +0000 (GMT) Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown [9.155.204.135]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTPS; Wed, 26 Feb 2025 14:00:35 +0000 (GMT) Date: Wed, 26 Feb 2025 15:00:34 +0100 From: Alexander Gordeev To: Ryan Roberts Cc: Catalin Marinas , Will Deacon , Huacai Chen , WANG Xuerui , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Naveen N Rao , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Sven Schnelle , Gerald Schaefer , "David S. Miller" , Andreas Larsson , Arnd Bergmann , Muchun Song , Andrew Morton , Uladzislau Rezki , Christoph Hellwig , David Hildenbrand , "Matthew Wilcox (Oracle)" , Mark Rutland , Anshuman Khandual , Dev Jain , Kevin Brodsky , Alexandre Ghiti , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v3 1/3] mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() Message-ID: References: <20250226120656.2400136-1-ryan.roberts@arm.com> <20250226120656.2400136-2-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250226120656.2400136-2-ryan.roberts@arm.com> X-TM-AS-GCONF: 00 X-Proofpoint-GUID: s_YdaBVwtjVAKpirmh4MQMhBb0iDQFXY X-Proofpoint-ORIG-GUID: 1tUKVvQju-YVCUZtfsna3wQvsmiy0plX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-26_03,2025-02-26_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 mlxlogscore=976 mlxscore=0 spamscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2502260112 X-Rspam-User: X-Rspamd-Queue-Id: 023B816000D X-Rspamd-Server: rspam07 X-Stat-Signature: 1upxahjc6xdo7p3o1koxykhe3igix69g X-HE-Tag: 1740578468-544688 X-HE-Meta: U2FsdGVkX19yCbGUoagujjbl0QyDMnb7SLcBxeazYBlRvqtTqBYXhvTJhVgXg6NfQBop+JfDJ/hLm7hG28jtk0QSORnpfLGq2XzOjHmsVgT67g9uKDimdPw2I5PdigHKNbIUcTvQTSX1qrXl+rQHPmVSbMVdFeaNJ6+zImvJJDawsNP6hRiN9LcbP0637DOq1smgXNYtDlX6rw14dNS1KnpMzBgz2E6wZmDCjAnFmG+RZ/EtmFUGDreF7PgLwyawOk4sJjk3UdNyWyL9teCtpOrlcUgc5lo4Vgetb29byZil9k7MjYh2mCI6uh4KbJe5HkxX23sBiIWqPM0Fy7DNVtXjw1042tLbNiOuB29SM2DMLDH7NsPcTTP7ogaq067BKQWTeXDB5WDFIl7o+5uwHHTK66ETO5HzIt/fAXExFEv+P4sswU/6JclbCajBbiexi02M4h8ozk+GRztao5QYkjvsw9dlGsnI1Ng4JKalrIXF5YJWe0MDNhXBlfJImuFRhU43CoaRtKxksUpaTzKO0CUexR1F34p/jPQl5k9AAKI8rR1a4q8O1r6ltBnaLCpDMPCsJVPaDVemryP4eTpw4DiZX7r51EwLSoM+RG7GJfnfFXmO4cuviBJ+1VqeHWefOVimxcwN3G/tPTOrgbTAC3OJiuCyFLXkC0cBuCiEY13tofHxPWrHTaxklPYQSEvFkoIVOYMbQrOhkz2sYrSaOCKOf1vGY1s8tXpaTEG7VE33b/KSxVbxUNCt9Owpu69ClU0l6M06H2jDNA4Kxd9E527eD7mrU3+vlayRGyCXD7yjny8ZWjMuVDQkAM1xeAIBdWCu6mChwesmbH25ofnHqkv9N6FELwjhOaNBoFG4rPdYsY8WgTfOei2EaIX1jqn3AUn+TXviLZnaLSJnRlE9n180CQds3VVPsRiWsvJKHF7mTH2I/1lE1kQmaDipDChPOMohwkFaBYSnxLKY7xE KH+fJ3qi R9h44FJkgG/YfI/Sqs7CmxG1WFldvCVG5RYH1EHcnM6dChrT3OTCOPLS2yRsPZrwMv00WtYCZ0iSbXRMGSEGvNVPg7gHRAXj7ZEGZB5d4uBya6DD2vppn1nuZp7CNRjO/1litFix4iLogJDvp+2VgnSLmQIB1BAtLbhKzu4fh/5DVG86ahAa+S82C3586ypYKbkoMgJ9lYvaR2w7dMkwOZZ9MuFSSvHlVRhVB+CcSZvy96eSBvCUxkAtdE2TGhrG4AtaBW5QU4im+N3Iq7rbfjXrLEMYTX98hnYyC2K45sk9c1rFOqHsOMXxGuG6VuGVI/bV9D3IKQJk+hKsfRKKP1r055DkRiGNrATms35KmsMLztbNDEEcCkNm9gtgaWRyKtZCLIAekMurlBJYO/k1KeSHdytENR8mZ4Oq1fym36zebU6sGYA7A8AXzK5sTZWDnd4LAu0cEs6+Fy3GL5OCrcjZF7rhizDzh1VeHtTKgXULsuppn6+aKbQzXLJvYfQq/BYGPxXFjgR8kAce+6oHJlqOAnQ== 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 Wed, Feb 26, 2025 at 12:06:51PM +0000, Ryan Roberts wrote: > In order to fix a bug, arm64 needs to be told the size of the huge page > for which the huge_pte is being cleared in huge_ptep_get_and_clear(). > Provide for this by adding an `unsigned long sz` parameter to the > function. This follows the same pattern as huge_pte_clear() and > set_huge_pte_at(). > > This commit makes the required interface modifications to the core mm as > well as all arches that implement this function (arm64, loongarch, mips, > parisc, powerpc, riscv, s390, sparc). The actual arm64 bug will be fixed > in a separate commit. > > Cc: stable@vger.kernel.org > Fixes: 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") > Acked-by: David Hildenbrand > Reviewed-by: Alexandre Ghiti # riscv > Reviewed-by: Christophe Leroy > Reviewed-by: Catalin Marinas > Reviewed-by: Anshuman Khandual > Signed-off-by: Ryan Roberts > --- > arch/arm64/include/asm/hugetlb.h | 4 ++-- > arch/arm64/mm/hugetlbpage.c | 8 +++++--- > arch/loongarch/include/asm/hugetlb.h | 6 ++++-- > arch/mips/include/asm/hugetlb.h | 6 ++++-- > arch/parisc/include/asm/hugetlb.h | 2 +- > arch/parisc/mm/hugetlbpage.c | 2 +- > arch/powerpc/include/asm/hugetlb.h | 6 ++++-- > arch/riscv/include/asm/hugetlb.h | 3 ++- > arch/riscv/mm/hugetlbpage.c | 2 +- > arch/s390/include/asm/hugetlb.h | 16 ++++++++++++---- > arch/s390/mm/hugetlbpage.c | 4 ++-- > arch/sparc/include/asm/hugetlb.h | 2 +- > arch/sparc/mm/hugetlbpage.c | 2 +- > include/asm-generic/hugetlb.h | 2 +- > include/linux/hugetlb.h | 4 +++- > mm/hugetlb.c | 4 ++-- > 16 files changed, 46 insertions(+), 27 deletions(-) ... > diff --git a/arch/s390/include/asm/hugetlb.h b/arch/s390/include/asm/hugetlb.h > index 7c52acaf9f82..663e87220e89 100644 > --- a/arch/s390/include/asm/hugetlb.h > +++ b/arch/s390/include/asm/hugetlb.h > @@ -25,8 +25,16 @@ void __set_huge_pte_at(struct mm_struct *mm, unsigned long addr, > #define __HAVE_ARCH_HUGE_PTEP_GET > pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep); > > +pte_t __huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, > + pte_t *ptep); > + > #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR > -pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep); > +static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, > + unsigned long addr, pte_t *ptep, > + unsigned long sz) > +{ > + return __huge_ptep_get_and_clear(mm, addr, ptep); > +} > > static inline void arch_clear_hugetlb_flags(struct folio *folio) > { > @@ -48,7 +56,7 @@ static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr, > static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, > unsigned long address, pte_t *ptep) > { > - return huge_ptep_get_and_clear(vma->vm_mm, address, ptep); > + return __huge_ptep_get_and_clear(vma->vm_mm, address, ptep); > } > > #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS > @@ -59,7 +67,7 @@ static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, > int changed = !pte_same(huge_ptep_get(vma->vm_mm, addr, ptep), pte); > > if (changed) { > - huge_ptep_get_and_clear(vma->vm_mm, addr, ptep); > + __huge_ptep_get_and_clear(vma->vm_mm, addr, ptep); > __set_huge_pte_at(vma->vm_mm, addr, ptep, pte); > } > return changed; > @@ -69,7 +77,7 @@ static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, > static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, > unsigned long addr, pte_t *ptep) > { > - pte_t pte = huge_ptep_get_and_clear(mm, addr, ptep); > + pte_t pte = __huge_ptep_get_and_clear(mm, addr, ptep); > > __set_huge_pte_at(mm, addr, ptep, pte_wrprotect(pte)); > } > diff --git a/arch/s390/mm/hugetlbpage.c b/arch/s390/mm/hugetlbpage.c > index d9ce199953de..2e568f175cd4 100644 > --- a/arch/s390/mm/hugetlbpage.c > +++ b/arch/s390/mm/hugetlbpage.c > @@ -188,8 +188,8 @@ pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep) > return __rste_to_pte(pte_val(*ptep)); > } > > -pte_t huge_ptep_get_and_clear(struct mm_struct *mm, > - unsigned long addr, pte_t *ptep) > +pte_t __huge_ptep_get_and_clear(struct mm_struct *mm, > + unsigned long addr, pte_t *ptep) > { > pte_t pte = huge_ptep_get(mm, addr, ptep); > pmd_t *pmdp = (pmd_t *) ptep; ... Acked-by: Alexander Gordeev # s390 Thanks!