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 61A38C001DC for ; Tue, 18 Jul 2023 18:29:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB06F280006; Tue, 18 Jul 2023 14:29:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D39718D0012; Tue, 18 Jul 2023 14:29:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB3F0280006; Tue, 18 Jul 2023 14:29:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A86368D0012 for ; Tue, 18 Jul 2023 14:29:32 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5256F8043E for ; Tue, 18 Jul 2023 18:29:32 +0000 (UTC) X-FDA: 81025570584.17.D3D5CA6 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by imf17.hostedemail.com (Postfix) with ESMTP id 2F0A340022 for ; Tue, 18 Jul 2023 18:29:29 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=i3PLfLk9; spf=pass (imf17.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.210.179 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689704970; 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=S7o51YlRNS3zPl1LsUYTJR0KoGseri+clhYp1sqA+7o=; b=1jLIw10yopmLbGmjum4dV9r+3EygAvTem/rlam4LBcChTtkIn//YlBXgXI4uJu9KhaVN6o ryXxFQBmm65QrkdtUqNimTKDuhwASCLt/zTl1eOWw86R9q3lJu0v/TMtHisaMFC+3PslmY uWOZv8gd2zJiuAgYLHkSmm1B8fr+CJQ= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=i3PLfLk9; spf=pass (imf17.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.210.179 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689704970; a=rsa-sha256; cv=none; b=ADNpQlbsmbmUMFA/8qNwoIecV3OUVQxnRSyOGrZbmGGVj31lkYjizC0L6osmqEeC6lJ/Mn 1w1CoiBfVo9oJg7MswQhJV9nyazdzbyzDn5TBR2CghWKcxIRSShg/TUQ7toZBoIr2f6pXQ nUIvujaHdJCymebT91gWkqyfflRf40E= Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-6687446eaccso6040538b3a.3 for ; Tue, 18 Jul 2023 11:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1689704969; x=1692296969; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=S7o51YlRNS3zPl1LsUYTJR0KoGseri+clhYp1sqA+7o=; b=i3PLfLk9r7NY7Uevj6PA3cYqDyv4GmY8ZTpAyOTEMVm18YLHoILcZ61oG+F9iFTHtV OX8jgLzmPYLYjT5nTvuf48EZuGhjT3nXDpUtIzZoLmFT/vwScgj8TKUey6e+GcVODdO/ aR6/yFWorh49MLpPBPS4KJKiFuCN20/QPxl/yYbUzWAditSFcUD4YBXKid/OyWwMGSU4 hTdhkYgK99mIeIotW/7zP2M7qvX9TABdVEY82e39977TCXOnZTAAMs6Q2HmEVszoN4iv VRVVMQY0DZtRHIz7VWFEh8j8Dqyv1YGRYWzfSCH0PzDWSbsFyOPnQYwqfHvs+eC+iMQF VveA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689704969; x=1692296969; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=S7o51YlRNS3zPl1LsUYTJR0KoGseri+clhYp1sqA+7o=; b=CxQpltOw8/ad/D2+5D/XvfFiLFfp8pHNxKPjR3ZEgJT0/Ej0JlB9yby3CbFvRhmTjc piYRwvbnRKIEFRdnzhf/5LUnkYXE7n6eUPpRDyf6J9QeJHo6Tb2dy1tXvgprhC4+2rxd 7swBTifyF+RjbjsawycZM+ReAdlAwVt8UMjXdFf0gqYPfBGSaS9aVTwqjlOlHjCL6r3y +xaqf0xkjKIo76fjBWJdiNeiila+kxVFkfqpzWCPeFgFFM4ZOckBfcbvl41zI5tF5Uii LCBYRjLhiRhSvT49u+mrFlDreOdQKRNzZXh9wDwncaCXqKYonIoPHjK1H34h5kAAEG3L TB9A== X-Gm-Message-State: ABy/qLYNZmSWvC4BlJY+8Lu9AE85lwf6yb2MPlfb6T/T/u/FVpwhdfNE H74YiLue8TpJjsmYtGXj+cHotFOyHrzZpgDdGOI= X-Google-Smtp-Source: APBJJlGRXuPRhwkyVNmCMc2KhNqjSUeDWEj142071UHQ2p4xg0uemtxHiHrQn61P1ux7F7gEcQuZIA== X-Received: by 2002:a05:6a00:3a1d:b0:668:8705:57cf with SMTP id fj29-20020a056a003a1d00b00668870557cfmr19016531pfb.25.1689704968961; Tue, 18 Jul 2023 11:29:28 -0700 (PDT) Received: from ziepe.ca ([206.223.160.26]) by smtp.gmail.com with ESMTPSA id u21-20020aa78395000000b0065434edd521sm1797726pfm.196.2023.07.18.11.29.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 11:29:28 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.95) (envelope-from ) id 1qLpRu-002ayW-Jq; Tue, 18 Jul 2023 15:29:26 -0300 Date: Tue, 18 Jul 2023 15:29:26 -0300 From: Jason Gunthorpe To: Andrew Morton Cc: Alistair Popple , ajd@linux.ibm.com, catalin.marinas@arm.com, fbarrat@linux.ibm.com, iommu@lists.linux.dev, jhubbard@nvidia.com, kevin.tian@intel.com, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au, nicolinc@nvidia.com, npiggin@gmail.com, robin.murphy@arm.com, seanjc@google.com, will@kernel.org, x86@kernel.org, zhi.wang.linux@gmail.com Subject: Re: [PATCH 3/4] mmu_notifiers: Call arch_invalidate_secondary_tlbs() when invalidating TLBs Message-ID: References: <791a6c1c4a79de6f99bffc594b53a39a6234e87f.1689666760.git-series.apopple@nvidia.com> <20230718111759.5642b4c4ffd72ddd9c8aa29f@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230718111759.5642b4c4ffd72ddd9c8aa29f@linux-foundation.org> X-Rspamd-Queue-Id: 2F0A340022 X-Rspam-User: X-Stat-Signature: de3thzmxedoex1nxpzfm97mhiigrq4mt X-Rspamd-Server: rspam01 X-HE-Tag: 1689704969-774150 X-HE-Meta: U2FsdGVkX18zc77T1+b665RasVJNdbDYWKTPqZbJxMsyKqJGQ/GZ89pz1jpMsmNils/fobXINoOnXigzQ90nc3O+dfNZdBkj8JrsICeJu9Slad9QUUHqxfiz9v2AtXJoOBipOigZkHSDMOzC9H7pkXrvkmeHvxIpYeXEcREyxikMk1hQKAgd96nV24A7/kRMTDd4JcqcO6yR8cfNaKNKhlwrtFso/vQLIofNPKPBoYd+56waw/YYLn5GdO+iD333Ps4b9oiozBQ46sIUpCx0c0fheqINtBUl233QFeKhUbWkpHWVLz3loKPlsHtl7vobzn8ryr5y8a7TC2+KFoT9WWvsM0A4NhZYNtdJ5BQMnNcIHWNgrMKdNLAwPICf7EevzeMetcWxZNZC7mZywJoNUNGusrAP5ltWDFe/+ixmWzJRNiJe1/e/g2HgYMJ/rywNaAHOe3DvO/vbg0xAiqrDAs7TliWJ1mfOexG4+YjYJCep7nRLJjPbf19meK/ZxDvHpVh5vK1Rj4cPXgxKS1xGwbshCbR+YswTHD4bahvMfGLavrSEYmsoHL586gAY99NrFBcZl96FzGa4xfXJKMP88FIWmc3961wq0hqbc5PPYCEKwGD3q/Usfx7CdcgPvf779ybuZ68/WJoJgOmaByDY8ULTE4jOc9uCnufsjCSmOjWusV2JL1rW2MAPA/D1YaSBD4skdJnS5SqZVS+HBiX3aI2qnz04X3chT0JOziY1FY1c0/1rbXENhBAAarrLEPn/WM8Rk1FxTJkKJU2ggOjT5B/SGLt4Etey6xo41mRr43nmj/2GX8U8gbDGAt0pF0H0JrTvJv1xxh/WxoqHC4poPMo3PlkB5yrxTM4z/H0Nee7s1bsAc8MTpNKXaWtvi/Lf18hYI5TAGIO7unjZlgR/7ZdApYCiVCeNzb1k9lddF+MDkNzxiDOdohJijOePgQHvHXg6NrWq+cAvTeifT5T YHBHEX+d yTUj/s5V3txFDCzZeSLLvYgpGy+QOX0WOjjehErQ413aCROhdu+dvRicauYOvg6miK4nFsPJJZSPRUT9gcnM5B4Kv3s4WlEPcxRM737QqmiIt2FeHUJ036yxNknGhjEU49HkXnDJ7Ju1xITHl7+IWunyuYFGx7UZOJcsopDm8wo2tDF2MEjKQipSV/WarRT4HBNOEwW5+C+mctfAh6i5hnqzmIAmcRxqbTW5KYcQsZABTTqk4yYZLy5LKy4T+kfhpL4quPjhSQ2X6jYeIEr1zAz4mlYCHjvbNnIeoSIYW/eL0M/PZoUTXJVoxwljh5AH113FMTUzCIg3qcxkeHufNpPKPZAPKHwmHnu/BXJ2WPPljwyq58W9x1/6jtFtlC1ARdyCIw7sEqiJiJfVVVFddSfVHe3trw9Sqnt0j6AYZ87IH7HCnS4W9VZwT4Ifmog8evIxQ7HTZ4P2DwOVljX/3O9xTlA== 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: On Tue, Jul 18, 2023 at 11:17:59AM -0700, Andrew Morton wrote: > On Tue, 18 Jul 2023 17:56:17 +1000 Alistair Popple wrote: > > > The arch_invalidate_secondary_tlbs() is an architecture specific mmu > > notifier used to keep the TLB of secondary MMUs such as an IOMMU in > > sync with the CPU page tables. Currently it is called from separate > > code paths to the main CPU TLB invalidations. This can lead to a > > secondary TLB not getting invalidated when required and makes it hard > > to reason about when exactly the secondary TLB is invalidated. > > > > To fix this move the notifier call to the architecture specific TLB > > maintenance functions for architectures that have secondary MMUs > > requiring explicit software invalidations. > > > > This fixes a SMMU bug on ARM64. On ARM64 PTE permission upgrades > > require a TLB invalidation. This invalidation is done by the > > architecutre specific ptep_set_access_flags() which calls > > flush_tlb_page() if required. However this doesn't call the notifier > > resulting in infinite faults being generated by devices using the SMMU > > if it has previously cached a read-only PTE in it's TLB. > > This sounds like a pretty serious bug. Can it happen in current > released kernels? If so, is a -stable backport needed? There are currently no in-kernel drivers using the IOMMU SVA API, so the impact for -stable is sort of muted. But it is serious if you are unlucky to hit it. Jason