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 97FE3C021B8 for ; Wed, 26 Feb 2025 08:09:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2FB5E280002; Wed, 26 Feb 2025 03:09:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2AADD6B0085; Wed, 26 Feb 2025 03:09:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17386280002; Wed, 26 Feb 2025 03:09:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EB6D56B0082 for ; Wed, 26 Feb 2025 03:09:41 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 71C40120C6C for ; Wed, 26 Feb 2025 08:09:41 +0000 (UTC) X-FDA: 83161371762.11.2D0F4E4 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf28.hostedemail.com (Postfix) with ESMTP id 6775EC0006 for ; Wed, 26 Feb 2025 08:09:39 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; spf=pass (imf28.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=1740557379; 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=A+fqdQWLrg7ifJX9iUDj6h0MM8pxgyoJDsCoHitt3FY=; b=5P2Qp6ukBmOcW9SxFtBQwmYhM3fsnCWZYqB0ORjeSXft/3JAsNqI36arW3QJaFTIbqGtOz uRZjtG8f3pamEv7cDPU0LM9IHIE9xTTyrTuOlUCniggGFfhvNIuEHLQxYOVof8LYY152Aj 63q8g/RaLSKDL7hscAJDGjT/Hb//pZ4= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; spf=pass (imf28.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740557379; a=rsa-sha256; cv=none; b=U7ZspHTCnhiRucdmu8oEIa2KHw2ct1+SHBwRq4DRKqdZXXGOtWszxjvnm75Xm9dxJJvb9k auUlh/PQRE4m17vT9qRIQWN0K7Q2VXIIF0ddYLiDS0KMWmJTnraXRJXLQVys1PAI9RlO92 mVt/TujRDxnjGtjFCTdrMaLqz46+Jys= 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 7A0441516; Wed, 26 Feb 2025 00:09:54 -0800 (PST) Received: from [10.57.84.229] (unknown [10.57.84.229]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7C9B03F673; Wed, 26 Feb 2025 00:09:32 -0800 (PST) Message-ID: Date: Wed, 26 Feb 2025 08:09:32 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/4] arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes Content-Language: en-GB To: Will Deacon Cc: Catalin Marinas , 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 , Alexander Gordeev , 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 References: <20250217140419.1702389-1-ryan.roberts@arm.com> <20250217140419.1702389-3-ryan.roberts@arm.com> <20250221153156.GC20567@willie-the-truck> <6ebf36f2-2e55-49b2-8764-90fd972d6e66@arm.com> <20250225221812.GA23870@willie-the-truck> From: Ryan Roberts In-Reply-To: <20250225221812.GA23870@willie-the-truck> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 6775EC0006 X-Stat-Signature: bubhgd4cqjgkjw14adoj4wyjw35p7uqo X-HE-Tag: 1740557379-701340 X-HE-Meta: U2FsdGVkX1+Ahcb6qjApQSWJkaJuAd49gpn12Lq+Bhjj2ZBh0A94pxl66KvK3ke5mDHuhbLrY1pr9qkgL7+V6+u0rns+z8O6w5NsewcV1sOIZe45ys7kwT5Tc4O3kUpbEkbUx7nIFvw0/vGsSI6Jt75arYhv9ulcW1JxsmrgyOirZ6JVYHEDbJUynUm95Aofu3AcAcuMvz5azAcKf9gKEjpPYxz2QeYjUGKGA+2AmUbrvLsIa4tDvRTIi2v3gvYNAleK3X9m3cYnLh9qMR1ooX7PUbd6cOVpf8yJhL0gEuumYekMA8HGilVBbDzgAhWzm7A+i1J7jTA1Sj/NkNEYkumS1PY3rILfyRfnLcZ1sTIyZqPOKPVrdQ7qMC/936fDAaRu7JgKYIEKpm6Toh64Xy+bjECWKHhfkWNZHRK9IE5SQN7KMR1Ie2wdi/h6Xt65GKq09V1KEFZn9fH9V4+2Bu3Jo79G6QFxbTw9ggHqwWHcDxSMCgraR6lz1cVtbMiUFi0OMiSCsFZoxkLJrWBeJUrFVYZra/lCvUmDIMbBhRLHyY/Ry36f+XUoBkwf2pfQCCxACZeiNvIflSPEKIPIvFvcnOPRrCVTNbkfacdBxsOHCYjaH2omJc7usUjhkDnZFpBYO4cEqIIFibZR1I/VNzEKEOCaspNuOWIFDI62+YHvDj+Z9LshwK/mkuJJYFJ+vEYe4bXcb6IJD0ljdI11qmco7lDL77WNtBCg75Mm6/jUPAl2w2DIIdiOdiWfwxIp6BKhkvGBcnDsZbHF5rtyA5VAGPpGRrC6yjN0grkVGuSpCXWfgyTfF6kPn9UTGLeBj7tw+jNI1NwhHIoZvTIyEGzdpxX8CvkBGmvGBQDEHVPntoOdq/bnuH5DwceLjtH87vO00ITyh7+Tw5Eq8923ewWsOUMyTO7xZMOV3oasPsYtJ884d5tRsjXA0MRNdt8bBanl30Q/roQ0JkpxkZI /ey+08KL H2y0AmI/MAFHb4LTgzMs79JS0DTL3O8nIPzVn542H81BQT/QMuMIx7iob6gs0zDfZpjUxGwvmN9UTmEDk7eIIgpf4s0At8zQ4Ev/G2LuNuEYNFNw5Q9n2Qd/OslZ4UEI4CjZ3hpZfoYkE6amoS31yR+0/GAymw7yzwr9vCwhTp/ZGLvdTUwUAA9AvGDGPiSNR3WfX 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 25/02/2025 22:18, Will Deacon wrote: > On Mon, Feb 24, 2025 at 12:11:19PM +0000, Ryan Roberts wrote: >> On 21/02/2025 15:31, Will Deacon wrote: >>> On Mon, Feb 17, 2025 at 02:04:15PM +0000, Ryan Roberts wrote: >>>> + pte = __ptep_get_and_clear(mm, addr, ptep); >>>> + present = pte_present(pte); >>>> + while (--ncontig) { >>>> + ptep++; >>>> + addr += pgsize; >>>> + tmp_pte = __ptep_get_and_clear(mm, addr, ptep); >>>> + if (present) { >>>> + if (pte_dirty(tmp_pte)) >>>> + pte = pte_mkdirty(pte); >>>> + if (pte_young(tmp_pte)) >>>> + pte = pte_mkyoung(pte); >>>> + } >>>> } >>> >>> nit: With the loop now structured like this, we really can't handle >>> num_contig_ptes() returning 0 if it gets an unknown size. Granted, that >>> really shouldn't happen, but perhaps it would be better to add a 'default' >>> case with a WARN() to num_contig_ptes() and then add an early return here? >> >> Looking at other users of num_contig_ptes() it looks like huge_ptep_get() >> already assumes at least 1 pte (it calls __ptep_get() before calling >> num_contig_ptes()) and set_huge_pte_at() assumes 1 pte for the "present and >> non-contig" case. So num_contig_ptes() returning 0 is already not really >> consumed consistently. >> >> How about we change the default num_contig_ptes() return value to 1 and add a >> warning if size is invalid: > > Fine by me! > > I assume you'll fold that in and send a new version, along with the typo > fixes? Yep, I'll aim to post this today. I have a few review comments for s390 to add in too. > > Cheers, > > Will