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 93C9CCD4853 for ; Wed, 4 Sep 2024 15:13:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 14A616B02A8; Wed, 4 Sep 2024 11:13:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0FA2E6B02AC; Wed, 4 Sep 2024 11:13:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EDE486B02A9; Wed, 4 Sep 2024 11:13:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CDFDA6B02A4 for ; Wed, 4 Sep 2024 11:13:15 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 73709A16E7 for ; Wed, 4 Sep 2024 15:13:15 +0000 (UTC) X-FDA: 82527399150.23.0C287F1 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf21.hostedemail.com (Postfix) with ESMTP id 8AEEC1C0028 for ; Wed, 4 Sep 2024 15:13:11 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AYK+HQTC; spf=pass (imf21.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725462743; 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:dkim-signature; bh=zezGrN7OIs0rkxz+AZ9NApI3fuT+nnaefmUX3Jp7eY4=; b=Dindv0bw8xZR/SFaGqbfHHBIHePKMq8QG6BtOEsuSIQ5g5gBpPOS9g99sLJcYzMaZeEOh6 HPsp1R4m96tZoSLiTsQodlwURp7KVvG1zjF8B2p1E4pxBjDDL0jFE3T0Jjkn5wJbD0fIq9 AIVf1EdUDmqUgO6tdtOpsjSr1CpDbF0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AYK+HQTC; spf=pass (imf21.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725462743; a=rsa-sha256; cv=none; b=UcRzJT6hafHncqAi+3em9cAyWDdxU0F31TIr3II/HzLDmhPNlh2qsCdxKaf0XePtcYwiGh oqpNlkRlgpu/CqUfLKCAVb/XU+csCw8dMBlVBCb/8s6PAtPH4uWYX5w13PWtgyR/Plb0P1 qXTTxqFWnORxlr9opJEFaHWnngmNHf0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 29D805C57FA; Wed, 4 Sep 2024 15:13:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4AE38C4CEC2; Wed, 4 Sep 2024 15:13:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1725462790; bh=VIYx26hgVos5Uqk44SX5r9sG/h6k7P59Ncc1ODsFvrY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=AYK+HQTCgGqQGtZu+3Tp2TdwtFMDbXELe+Q0tN78TUbxD4GFOgBx9TGDsUbWl1D/q CF7yz2oDt7KYjVuXmuVH3U40DLG7mDK6CgPF4/tdWUVTUPuON7WjIYr2K7ihQYG2UO gwayFiRQQllfqf5Lk54eaMftoqi1XmU3MC+yFT+m65Plngjl33AqcYk7TAdiSjwlAm cEJvr81HZd+ENT7CHcgBnZlgXTkCTvQwUKMFGxAdol9JBuDtCc57F/Tc3oAD712Oo6 h7M6s6txFdgNUVTjgZfEpQc26LwSKYUzMN19nIY+8z2mA5rafZqJ4yTcZQE9DkbhFa t3XU9U+cnMb3g== Date: Wed, 4 Sep 2024 16:13:04 +0100 From: Will Deacon To: Barry Song <21cnbao@gmail.com>, ryan.roberts@arm.com Cc: David Hildenbrand , akpm@linux-foundation.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, Barry Song , Ard Biesheuvel , John Hubbard , Mark Rutland , Catalin Marinas Subject: Re: [PATCH RFC] mm: arm64: advance pte for contpte_ptep_set_access_flags Message-ID: <20240904151304.GB13919@willie-the-truck> References: <20240831083537.62111-1-21cnbao@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 8AEEC1C0028 X-Stat-Signature: pj86dtpedhkohber1yyjobek9coz3fdt X-HE-Tag: 1725462791-793169 X-HE-Meta: U2FsdGVkX19+vH4bDY+V0i705PyUSSTu9soRBo+5HImCIi05purDVU9YuGx63Erinz9ujGl+ys2/fAP4+5TUm/WjK5nCEfi1egYQZCm2jnC0oXUzvg/n/EtMpdaYSutSlSOGNRz0nv+UWv+eACHbyOWehB6TP2FiJl9/oVLZgE4MaFt4ZH3Fucn992HUudsH8SLiyWvN9xcZUEquyXpemfWTOTCIdny01Kt5on8PD+H9uAsDkHOTXYUVmW0a82LS5jx8tzs9lLuKe3q8Tv/cf8rxNxxdRIQfcuNJDI9L9Eb0X8w73HdGQJZdc7uKbPiN+qmApmHOTOKqShiVknROdA/dwKnzz1b2qZZMddhqDVTjyqaTHfFol3DXKeF/yavAtXhU00Y9bB8riA5ODbHsEap6y6sj5wTB5CjVNmgYqXG8Yzt3hVNvClTbhOwVXHdQUQCGEcabLLNL56w3T1zlUD/dbxwAxvcH0jZvfN+KlmPBev7EO87W8KUgbSSm0dXjfQ9Sgn2bxjaFCZ6GfxF28ANbvCTH+rU1AqchSVo9VHK0+9rSgPCEJs2Frtk+HNUSP+2Wir74++kDMsiZfjsuO5ISMF/K6n0NBn8+fdKdee9UbraS5hIQJBflG13h/7jnpWfVxUIJqz0LJaIPxe6WPn7rdGKhSAe0h/WCYt1tgLkGo6Bzs0jNI6R+rEtamr4f02Vl/Fu5snlrqFWW/5rilf1/kScTfEGjpGCJp7QIkdgduLLK2BISjRmFASAYdVWKqSngrJSyG6LmFZxU8EWKRwY6432lZGFpkbOz9H4QMRz3eiQ0l8bA2Lko6o9olFvIYhAXcI5hz3XCzrX+1Ey+rz4Sq/a6d0QMepSCTrksdxHjSvg93a1s6wnJQwq+6kDNJJShHHeclKnKAEQsvzK/KONnMNeps4MNqn/IEL6xhMvWOQVHH3Rr6/r0YkYD6jvxIsZSfvsicO72ivDB82s AanZGAMD A/HrBuLbWyO09/1V11Ptrb/G5rrHpI8ViR+HiVbu4UVaD56ie+fDRR0QCV+Z7SrpMkQ2E4oegnXFIU750PJLy3uz+oIEs+8C7LGX6wnilYnFOkG6BTTSLLlo8k7wxfgq/Lq2PBmmQYdxT9y1BUMwf7bldI4SFkOQwSGUZKrPa5iWa22T43PL3JIqjuB8hxSBvxyLMzusekHCfLWqGOkOJ03KOX96wTIyBDkrykIxh1yzTCxVWC0KzQIktMB4/GHbEKIoI4mhs90W/h+Dn1oZlfjEEudspWYyxJa6a7VEyV4AguMxvMaJKIQ8ow4QEuikPIDGshHXrP5rM+7Dw44fp7OiQQjgPbByAzECA9Qm21FSPWGpJP1uRQswcP7K+bc29sZUaCJgUM0qMjE5u2f09IiyzdxyxY2Q7TvSAje7gLBoqMU2nhfohQYAcsrPNrkRKfF1t 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: (Adding Ryan, since you're asking him a question!) On Sat, Aug 31, 2024 at 10:06:40PM +1200, Barry Song wrote: > On Sat, Aug 31, 2024 at 9:54 PM David Hildenbrand wrote: > > > > On 31.08.24 10:35, Barry Song wrote: > > > From: Barry Song > > > > > > Hi Ryan, David, > > > it seems contpte_ptep_set_access_flags() has never advanced > > > pte pfn, and it is setting all entries' pfn to the first > > > subpage. But I feel quite strange we never have a bug reported. > > > Am I missing something? > > > > > > Fixes: 4602e5757bcc ("arm64/mm: wire up PTE_CONT for user mappings") > > > Cc: Ard Biesheuvel > > > Cc: John Hubbard > > > Cc: Mark Rutland > > > Cc: Catalin Marinas > > > Cc: David Hildenbrand > > > Cc: Will Deacon > > > Signed-off-by: Barry Song > > > --- > > > arch/arm64/mm/contpte.c | 4 +++- > > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/arm64/mm/contpte.c b/arch/arm64/mm/contpte.c > > > index a3edced29ac1..10dcd2641184 100644 > > > --- a/arch/arm64/mm/contpte.c > > > +++ b/arch/arm64/mm/contpte.c > > > @@ -421,8 +421,10 @@ int contpte_ptep_set_access_flags(struct vm_area_struct *vma, > > > ptep = contpte_align_down(ptep); > > > start_addr = addr = ALIGN_DOWN(addr, CONT_PTE_SIZE); > > > > > > - for (i = 0; i < CONT_PTES; i++, ptep++, addr += PAGE_SIZE) > > > + for (i = 0; i < CONT_PTES; i++, ptep++, addr += PAGE_SIZE) { > > > __ptep_set_access_flags(vma, addr, ptep, entry, 0); > > > + entry = pte_advance_pfn(entry, 1); > > > + } > > > > > > if (dirty) > > > __flush_tlb_range(vma, start_addr, addr, > > > > Taking a closer look at __ptep_set_access_flags(), there is: > > > > /* only preserve the access flags and write permission * > > pte_val(entry) &= PTE_RDONLY | PTE_AF | PTE_WRITE | PTE_DIRTY; > > > > So it looks like it doesn't need the PFN? > > right. > > > > > > > OTOH, there is the initial: > > > > > > if (pte_same(pte, entry)) > > return 0; > > > > check that might accelerate things. > > > > So unless I am missing something, this works as expected? (and if the > > pte_same() would frequently be taken with your change would be worthwile > > to optimize) > > > Right. From page 1 to page (nr_pages - 1), we consistently get FALSE > for pte_same(). > This seems quite strange. I think we might need to "fix" it, at least > for the sake of code > semantics. on the other hand, if pte_same() is not important, it > should be dropped. > > Hi Ryan, > what is your take on this? > > > > > -- > > Cheers, > > > > David / dhildenb > > > > Thanks > Barry