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 CE630C4167D for ; Tue, 12 Dec 2023 11:35:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DEDF6B02AA; Tue, 12 Dec 2023 06:35:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48F676B02AB; Tue, 12 Dec 2023 06:35:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 356B26B02AC; Tue, 12 Dec 2023 06:35:33 -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 26F766B02AA for ; Tue, 12 Dec 2023 06:35:33 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id EDD351A0880 for ; Tue, 12 Dec 2023 11:35:32 +0000 (UTC) X-FDA: 81557960904.10.4038DCD Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf10.hostedemail.com (Postfix) with ESMTP id 90AF6C0014 for ; Tue, 12 Dec 2023 11:35:30 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ChlUuItj; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of will@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702380931; 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=XciqLYteG1fyGjcnqqvzNjlkpFKxgvF/vnSeGZb3gew=; b=GpPnfV0yhK3Uaubncn3VdUBTiNn3YPGhFMq5hEv7MIQfQ2zTsq5wFg3WwFj/Wf5F297lmY uVzX0YnuqV5efbr8kX0QwTRZGGNnW+SEj5kGMKRzpFd+BexAdJoPFY4jcCa7V0siQ01dOa U1mAnfQpvUd5BDoCNnwCOnKTgW0YZJU= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ChlUuItj; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of will@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702380931; a=rsa-sha256; cv=none; b=WFUptwtDqc13mPE6NBJ/jbLRMG8ti3YIbJo1ZaiSC1+C6qoMKfUyZFN5NDJ4WMAXiKxu1I Pp0mJNZzTXdA4mU62gdGSO+4/AEKe0bVIrPXhy69J8GFsCbAyJeEJtEQBSagFUHcsu5zMx jW6Ao1Xg3krkKA70C0haN9n6f2Eb+/I= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 3339BCE191E; Tue, 12 Dec 2023 11:35:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62A08C433C7; Tue, 12 Dec 2023 11:35:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702380926; bh=Pob5Ge2gFIJG7Q0aQ/vTG1K/p3ucC0PSIOzsvYWOUOo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ChlUuItjd2gyTeqVgCQDk6fs8gtd16Kn8Oa3hq1KQzsfcuMRdXOO94YGbS6d5rrtZ BIHf3nUh3dH7CNtKK8gAKoXCsANL6oDpEQ2BhHM6yakdd320Tcejtf3TfUzKQM3gfA 18OY+N62lKSXe+hmmqQCRvVphdJzXtnDQ8n8izElVjsmny2rNvVd/+ei6Wnkuz6US5 GTNZvoLtx7xOdkB15mZ1bbde96IYyYuwN/mNJiVxSsw7KC6kAZ5WLZ0eHhrOzRa2X9 /9RE21fot+BNmpRpDI8ZajgjLklP0liEfU2d8VJ2EEywo6wLZ23gCYIcrY3hy08OMP BDjmon0SElTXQ== Date: Tue, 12 Dec 2023 11:35:17 +0000 From: Will Deacon To: Ryan Roberts Cc: Catalin Marinas , Ard Biesheuvel , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Zenghui Yu , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Anshuman Khandual , Matthew Wilcox , Yu Zhao , Mark Rutland , David Hildenbrand , Kefeng Wang , John Hubbard , Zi Yan , Barry Song <21cnbao@gmail.com>, Alistair Popple , Yang Shi , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 12/15] arm64/mm: Split __flush_tlb_range() to elide trailing DSB Message-ID: <20231212113517.GA28857@willie-the-truck> References: <20231204105440.61448-1-ryan.roberts@arm.com> <20231204105440.61448-13-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231204105440.61448-13-ryan.roberts@arm.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 90AF6C0014 X-Stat-Signature: mcu74p5y4yedbf6bj63mgnkj7gw4s747 X-Rspam-User: X-HE-Tag: 1702380930-992380 X-HE-Meta: U2FsdGVkX1/mIU8WaTJhUZ6PE09ZyQ18FjeAIqs5kU0p23F2VgEV0nY03PnDMSPBdsg2Gyi8+z2F7KYB4I5rJOpwPLj+RH5YEAMDliEa02QTjpZTOTWTW+r1wGQpKoriyPSfv6hnXNfoLre6MqBxFa2AgHJ6Kt49D8rXqmTfHbIQ9mNVjtX7wE5hKuLK2DLqjnw70F+NUHhrSPrS3vCdxDYEv9Mk+HKoUQK1g0k5Hg3qDwJd7vQ9cvklOijUsVG7uTgCQHHN5QsW3x6VAdYZzgDqt60mqmdeoe+jjXqwaKGqSgkSwggWB+SUmtibRky+RpA3NzwsGY63HEsU0OQEXwrpkxEI/jpE1PFRYr6BKqwJwCx79wO0BThfXjJ7Scm51xSxQeU0yJWmrjV7FYL0JegGfHyQtHU3oLiD7u9OUz50aHb/QqmYMwF3cqZVTifKei7aPj1WJrWCtRqbEW70qLol+4weGWWaRGHz/SgOiW+oB+0/S5BZC6ZrTHryJ8SEDhO5DhNdW8svGbyzhtynaRx3UbU9+6elqULPaItl07hbopHqNS0q21wXQQanzX5Mly07/6xSQNl/jHeExiwrPothffv4n1OZpNtjfckqwcErd5ZGcegvdgl4/6xqmJHFj6BUtrRIxjDxwNklItQWbCqAUWOTBfsRUEynfgBKLvz76Ys7jvK8JFXzaS5sxwd+prvcWMJBveF2NXWqwtWHZSKJ8qzb1sMcBkKz5d+Y+2rJgaHMx3E/Fu7g+B41RJtFisLWeHEsSWTZw3xWIMtHTTp2VG6a2HwFIqnDKx4MFuEp1qBJy1haQx8KS9s/49jp6peSoV2K3D9bJMG9E4r0Y0q+e6z00Bbbgp4NySF5AYJm12kKXnL32GzKkHOw7YQl93wyh+WpwnlnmjQpOWUzGwII/r6WbiZNQ0eeOES0wNhiA1JYxCHfH1YRG4Apav/KhDVtRbv9dUEvwi2zS8s ynZ2B3DJ RzqYhDuB8lY3/e+660ohXI6o2tq84Hjdhb/Ga3ly6rG5SretbPeyikobJ/42P66xakrIfUJRx4a20veRqoumJdKODr78Lkm/kQ2XvxYaCDhlmsxMg4BPmLh6s8BprQ+w6zORo18f9sjWc0YsrP2MbP95ItX5IsF2cDpeOiKcxctazhGKGWPUfqnRzFXGKOUMhwjJWJtnVeSIiGfvyJxOCkZaTtdATwojYZ3BDFTdvD8OD+MKwozprP6SsilfyhYwQGIQPSxdK5fSCx40MRq+DhPbqyMxYRzZqF9gjqLKLcTGG2ippdqqCmerArGJ/lUcyYhWqG+rzxzyhT8WZr9PB0g6chwyaBQ40OM8kWv469JXPPYE= 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 Mon, Dec 04, 2023 at 10:54:37AM +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. > > Signed-off-by: Ryan Roberts > --- > 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 bb2c2833a987..925ef3bdf9ed 100644 > --- a/arch/arm64/include/asm/tlbflush.h > +++ b/arch/arm64/include/asm/tlbflush.h > @@ -399,7 +399,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) > > -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) > @@ -431,10 +431,19 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, > else > __flush_tlb_range_op(vae1is, start, pages, stride, asid, tlb_level, true); > > - 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); > +} Hmm, are you sure it's safe to defer the DSB until after the secondary TLB invalidation? It will have a subtle effect on e.g. an SMMU participating in broadcast TLB maintenance, because now the ATC will be invalidated before completion of the TLB invalidation and it's not obviously safe to me. Will