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 AD9ECC4829E for ; Thu, 15 Feb 2024 11:24:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 43ECC8D000E; Thu, 15 Feb 2024 06:24:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3EEC58D0001; Thu, 15 Feb 2024 06:24:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B68A8D000E; Thu, 15 Feb 2024 06:24: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 1CF098D0001 for ; Thu, 15 Feb 2024 06:24:25 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EBD49120FD2 for ; Thu, 15 Feb 2024 11:24:24 +0000 (UTC) X-FDA: 81793804848.19.718F422 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf26.hostedemail.com (Postfix) with ESMTP id 3CCD8140007 for ; Thu, 15 Feb 2024 11:24:23 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf26.hostedemail.com: domain of mark.rutland@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=mark.rutland@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707996263; 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=5AKcAvJHgC+3tcj8asxKg2o7dlfnv2wtx3VuiHIamrU=; b=HfhD28dEqzTlvskLbTb1fhPZwsxcFyv6JSbZ8kL4Vmj0mzTAKXK+oGFC4uqaYUIscPrq07 YXVm9Ltm7LeGeRmojaOvMQa3ptrS7qItt7MnICn8r2jkwhR2ylARLYHCJtXnjgTrfigQ6I mDthCH/wuFJhRoS09uMRgBLV7YFjKnQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf26.hostedemail.com: domain of mark.rutland@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=mark.rutland@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707996263; a=rsa-sha256; cv=none; b=iZv+uqr6xxKsXSmQK9RSOcfNzCwpnrefOCLG3lmHn6yLrjOI/VbawsCfmV6qYYpF0L8fQw +ozF8ADCEjznNU7JNEkgTZcdm8aGyG8ID8Fux/n+DHzWKDh6kKx4VPZEwwwHLmHdtt7WAW +/WUG6jDgVQhQwGfwxzxK3o5zorpc3c= 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 6E6AEDA7; Thu, 15 Feb 2024 03:25:03 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.68.11]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E7DF33F7B4; Thu, 15 Feb 2024 03:24:18 -0800 (PST) Date: Thu, 15 Feb 2024 11:24:16 +0000 From: Mark Rutland To: Ryan Roberts Cc: Catalin Marinas , Will Deacon , Ard Biesheuvel , Marc Zyngier , James Morse , Andrey Ryabinin , Andrew Morton , Matthew Wilcox , David Hildenbrand , Kefeng Wang , John Hubbard , Zi Yan , Barry Song <21cnbao@gmail.com>, Alistair Popple , Yang Shi , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , linux-arm-kernel@lists.infradead.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 11/18] arm64/mm: Split __flush_tlb_range() to elide trailing DSB Message-ID: References: <20240215103205.2607016-1-ryan.roberts@arm.com> <20240215103205.2607016-12-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240215103205.2607016-12-ryan.roberts@arm.com> X-Rspamd-Queue-Id: 3CCD8140007 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 5h48fbixxojjdz8d1qyake391p1z6yew X-HE-Tag: 1707996263-789096 X-HE-Meta: U2FsdGVkX194lbGALnW4D/FsB4BIEyO5h0PkI2sVhVWol3me8I+xulz4qFfsK3oy4VminTSmBDaXEewkcwb6JkDNWdnT6x6vZrEMM+m8NRoMMEykv3++xSqzv1Z0Q0G7LMXVR+xSqqvk+NBr/QAl0f6ZfXYcXRZjnvoMZr7zvGl1dJs5MRSzIyMbHzgX+4dNZCxlERz18Ltax1m2i4WYic35iJ8LGc9z0FU29U4IrEaJp09AD+3jhw/z1TsJyUhPChsguBKW2N2pSjvyVjgP6JkZoSHpyMmz4VZO+YSZWuInd8HHEK18Z9kfv1g0ZeD3Gc0VUcdRILJsKsPx6Crp2O99NZlU9bwesJ4S200T8ZXTI4nnQtqY3z2pl60UrmjXLwVkZxGzg5UdbYH7auayFG8OW8qPuc/kdcU7GeU9XDXINo/Pc7c6cD0TO0tVl1sivIEt+PvDAl6fsNcrRJgfsScdUWB2ekiZAIt88XKnBsMqRNUaeDerjCkwL632mK6crreOOx5hksbGLhgfhA2BfmlL5odDDyCPklgUfXQl0HPtZIPOtUH01DDL3l1WM6TK5Q1bJVWdI84+difVUAwXAAgabXw03rN6xfxXi1t3otNAk4odizfe8l8R5R+Vf/l8yqrXVFz9xBsyuyJD4/xl02YPEdQHMFhoiOvWbvOzaSIG0iT0ej0NUwsnVz+l46IXpEm8Nt+15M0Yp+JA8aRcYvTuQtOVFvs0O6dNeZgnDxczbQjPO7Y9Z3RGi2ifsfcP7pWev3tKThCCJ0xrVdLI50E9jWWrY9f+OhlVAz/KWmz1RLR3G8U5iuSvm+lO1Vja6mwG6OtXUwFoINlqnBzMpvmcHfzqJJX1oA+E00CENRiRuJe8Osnd2BtgOL+CxOk58LQLWs/KEiJfrfvQbaRxFaHfFEmv670pxa0BZhXueHwaOjqNxW3JeW3QNb6cYG2brxNcZ52hBB+eBR6/9BJ fmUFEvBK E5/3t33nGPjMmrgE+qZgDcvvtsI+a3JtK7PJSLRChfRz0fzUWAKtrAYQz0BjT114n4SrV7VpOwW8GDHFNn5I3df8bT8XTHjbcqXZCCdfxcBxJTUQyLsx/pIMdKjewD0waqgLEIMe1utrJPXeOqXhwIz5slFxu16Wa0gGOjU/RfpniVOlUcRzZ7oO6PTM2Z+XCffESeQtslcNSZpf9Z1p3pqAD+cmlUDjIDFWo6EWw4/1bVc9vaSO0g+t9c6tpZF9tHFNr7KyVYpA18U5pzEILgUgN38DkzVJUxvkwul0e8avZlbGgYbd6PC8ZiHfE7ztkRmzmC0Qd23m+OGM= 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 15, 2024 at 10:31:58AM +0000, Ryan Roberts wrote: > Split __flush_tlb_range() into __flush_tlb_range_nosync() + > __flush_tlb_range(), in the same way as the existing flush_tlb_page() > arrangement. This allows calling __flush_tlb_range_nosync() to elide the > trailing DSB. Forthcoming "contpte" code will take advantage of this > when clearing the young bit from a contiguous range of ptes. > > Ordering between dsb and mmu_notifier_arch_invalidate_secondary_tlbs() > has changed, but now aligns with the ordering of __flush_tlb_page(). It > has been discussed that __flush_tlb_page() may be wrong though. > Regardless, both will be resolved separately if needed. > > Reviewed-by: David Hildenbrand > Tested-by: John Hubbard > Signed-off-by: Ryan Roberts Acked-by: Mark Rutland Mark. > --- > arch/arm64/include/asm/tlbflush.h | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/include/asm/tlbflush.h b/arch/arm64/include/asm/tlbflush.h > index 1deb5d789c2e..3b0e8248e1a4 100644 > --- a/arch/arm64/include/asm/tlbflush.h > +++ b/arch/arm64/include/asm/tlbflush.h > @@ -422,7 +422,7 @@ do { \ > #define __flush_s2_tlb_range_op(op, start, pages, stride, tlb_level) \ > __flush_tlb_range_op(op, start, pages, stride, 0, tlb_level, false, kvm_lpa2_is_enabled()); > > -static inline void __flush_tlb_range(struct vm_area_struct *vma, > +static inline void __flush_tlb_range_nosync(struct vm_area_struct *vma, > unsigned long start, unsigned long end, > unsigned long stride, bool last_level, > int tlb_level) > @@ -456,10 +456,19 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, > __flush_tlb_range_op(vae1is, start, pages, stride, asid, > tlb_level, true, lpa2_is_enabled()); > > - dsb(ish); > mmu_notifier_arch_invalidate_secondary_tlbs(vma->vm_mm, start, end); > } > > +static inline void __flush_tlb_range(struct vm_area_struct *vma, > + unsigned long start, unsigned long end, > + unsigned long stride, bool last_level, > + int tlb_level) > +{ > + __flush_tlb_range_nosync(vma, start, end, stride, > + last_level, tlb_level); > + dsb(ish); > +} > + > static inline void flush_tlb_range(struct vm_area_struct *vma, > unsigned long start, unsigned long end) > { > -- > 2.25.1 >