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 A9AFFC021AA for ; Fri, 21 Feb 2025 09:55:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 24B32280014; Fri, 21 Feb 2025 04:55:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D41E280012; Fri, 21 Feb 2025 04:55:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 09C02280014; Fri, 21 Feb 2025 04:55: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 E0850280012 for ; Fri, 21 Feb 2025 04:55:24 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 7E46CA1B0E for ; Fri, 21 Feb 2025 09:55:24 +0000 (UTC) X-FDA: 83143494168.21.22C714D Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf22.hostedemail.com (Postfix) with ESMTP id DAB69C0005 for ; Fri, 21 Feb 2025 09:55:22 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf22.hostedemail.com: domain of cmarinas@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740131723; 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; bh=Cgj0SsAf7s17wTdss/DKIZ3z1NXE7e8Hhk/xnWXEDfM=; b=tdO84F5O7rdRFZjSRfS8iFA3XQvqejd1EMoD4iXJGsfIuhajSN2Yz7Jhz3aKADD7Ic4nCj MRk1SXr7oJEkoxmSUf53+xtF40USVPfLPqoGZGpEm74D/CTymD+8QxBNijXPzq/Bi/1E3E pnjb14+LoAZ9jwNzc1RUCfLBMSVn0+0= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf22.hostedemail.com: domain of cmarinas@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740131723; a=rsa-sha256; cv=none; b=UAwE/wGToJGCU2WG3G6p4zjntYYgCyfz7yNDr3Ue6n2QprGXuJJzpEPP49XcLcMrW5FbjX FpqSvtY56CMJuNePINN6dKLN1PYsDBhVy12xGUOcSxOZckaBj7UuSYkuUJm6Z85NDwGfFe TY4zX8OlkU7mGQOeDXydLA+VAmxeaQo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 026596112D; Fri, 21 Feb 2025 09:55:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8DF8C4CED6; Fri, 21 Feb 2025 09:55:15 +0000 (UTC) Date: Fri, 21 Feb 2025 09:55:13 +0000 From: Catalin Marinas To: Anshuman Khandual Cc: Ryan Roberts , 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 , 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 , 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 v2 2/4] arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes Message-ID: References: <20250217140419.1702389-1-ryan.roberts@arm.com> <20250217140419.1702389-3-ryan.roberts@arm.com> <5477d161-12e7-4475-a6e9-ff3921989673@arm.com> <50f48574-241d-42d8-b811-3e422c41e21a@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <50f48574-241d-42d8-b811-3e422c41e21a@arm.com> X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: DAB69C0005 X-Stat-Signature: c75bfewsg61zicsp9cuduux6dmb8eupi X-HE-Tag: 1740131722-590134 X-HE-Meta: U2FsdGVkX1+wtpTIyvQEb3enDK7Z4KumftBQJ+tQpCM9uL79SDjxMbjCJ3rH6h2BX8lEALHKOMBo/e17VgO5KPsT44H6CgFJwzQuGVStYkWoqyZoK2/osZV1ycMtjCEnePb2kUmcSesX3uF0q55tXLASCMPKIUYKBd4MyWvNYuDQXuHbe9xtMDLMEWNDlm8r48MTJb46FLsBpxplSHmlnnP9hWO7AdtupoexPQzN+usv9NljgodXH6pNZCVtLyMYArBM/k92BiuonmNVN0CX87M46Q82eo7gORce8Nc8BZ5eF2jq5HInZtKw9wU6vEWyyaW/kYI+tAQtarBERb1qWUxyLtrz5/Tk4D0GmXpkVyfOvQT8LZ0PgvbjCFV0ZGMSmJjLT7jFOfLzT5FHC/VVCiUeor1kO9/gQ9yp4/s/vaFJEs5MQAibi77IZmWvNDUkhPJd6V7JzX2VfgefSCbkj/YdmP+16sp5diLB+uldhFXQL0MLRIG3eDjmuuYrL0yZ9rHgKO5Rmc5hsxp0SUZ3QCwcKcz/ydsnjpg5NYFQ0G3fSLXPSActyGcQdUNen+lroWuT4d7J1EYCTzyCDP/j6zGDwGYp1+huBwwsJwDkg13UmzGc0bXBL9/DZKaIgT8aYWcWStyU13o3v8f2K69btUEMKaeE/psM3U1uPe/ryUy/cRlNpcVCu0wJZrEevZLBROTPjDGeDDPz9eXS1y08vYYET7uOrGapewnLmiT/tmtlJb+veH4/FQKXJeAI31tvRCdH7xhjuX1LVUPKW9zGAFjgScbhnHUpgFbTfVozrakM76Y5kNVenG2jSZEWJvG2SabQvV3fm1jR8A6EP6Slze5dToigcAM8Patb5HhMtN9kq8Gd2OHrYQJNg9T5XEDFfoHFq0ArEm4dx5LYbY4cALgzT+XJy43F6GX0/tu+XkcBoPtri6U1eRFvRLGXS9vffF+N1/nRsKA4xI03ZZj UJIBx2kf GD1EzTHpdApHrsyhwWpnxOXGZXbEUbaa1S+e8pCo9rKO95DBnUf8+7SqY6Z7eeXNVpAAknpBeMHZaWJpB/mPqTu0nHF45oWASRhhttyaSlEbVN1A0riFhWM0ICv2LD8qG9+0YsAkReXqUgDt2jtHxWmIOrpu19ZSLUifYdq8SpNMtM6M9W53Sjypwz4DmizTtRtKq/7pZNADEMgeQ1KXmwrZcSgXVG36E1aJyJnduZdH1DaHoF6d+WGj1P+Pv6Pdvia9j/X3AyJLhG7KEciim5Jasc9oRO4M/NalewACVLDS0eKF0x7d3KF4PuFFkVT3dgMHWfzyuMWk+iQ9XcZSHE9D/Yw1/t5EYwZU+Jva20j0hBk+T82cIUw0q9ocgLdxDCWPTHSgRrYN3x5E= 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 Thu, Feb 20, 2025 at 12:07:35PM +0530, Anshuman Khandual wrote: > On 2/19/25 14:28, Ryan Roberts wrote: > > On 19/02/2025 08:45, Anshuman Khandual wrote: > >> On 2/17/25 19:34, Ryan Roberts wrote: > >>> + while (--ncontig) { > >> > >> Should this be converted into a for loop instead just to be in sync with other > >> similar iterators in this file. > >> > >> for (i = 1; i < ncontig; i++, addr += pgsize, ptep++) > >> { > >> 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); > >> } > >> } > > > > I think the way you have written this it's incorrect. Let's say we have 16 ptes > > in the block. We want to iterate over the last 15 of them (we have already read > > pte 0). But you're iterating over the first 15 because you don't increment addr > > and ptep until after you've been around the loop the first time. So we would > > need to explicitly increment those 2 before entering the loop. But that is only > > neccessary if ncontig > 1. Personally I think my approach is neater... > > Thinking about this again. Just wondering should not a pte_present() > check on each entries being cleared along with (ncontig > 1) in this > existing loop before transferring over the dirty and accessed bits - > also work as intended with less code churn ? Shouldn't all the ptes in a contig block be either all present or all not-present? Is there any point in checking each individually? -- Catalin