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 AD153C4345F for ; Fri, 12 Apr 2024 13:07:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3EAFA6B0088; Fri, 12 Apr 2024 09:07:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 39A806B0089; Fri, 12 Apr 2024 09:07:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 214986B008A; Fri, 12 Apr 2024 09:07:52 -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 00D6F6B0088 for ; Fri, 12 Apr 2024 09:07:51 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id BD266120E7E for ; Fri, 12 Apr 2024 13:07:51 +0000 (UTC) X-FDA: 82000907142.02.5BDCBA1 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf22.hostedemail.com (Postfix) with ESMTP id DDEDFC0041 for ; Fri, 12 Apr 2024 13:07:43 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=mlWYRY6R; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf22.hostedemail.com: domain of maz@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=maz@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712927264; 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=fvv8bmoE56ytuE8oU0xD8pxdC/lIJe/x6Ca/s0HAH6k=; b=Xg/7XDyLVTnvRVpsWoPLxCr2BJt/Tob3jAsDe7wx+d90SPdWRK5tbFCDaULf4P7b0NQ8P8 aKA15Td6gD0ndfKIaR/rJ1tVEPmpBM8pHnFHbVhww/GHmc/S3j6+fDvPLR27JK5FrCsFrZ z6aLTK8itJrrOy85XJUVlPb2njjf2Lc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=mlWYRY6R; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf22.hostedemail.com: domain of maz@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=maz@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712927264; a=rsa-sha256; cv=none; b=6uiny9K2sm2lyEBNdA72DUBLwliUOIPsrExqdNpXuZG9m+0OT7+LyFb7Khe+TH3XopW7ZR NOJXpdmdaVw3/dCmfukIK84/8OJpqvmc4WKU1kZxP2x3Irdvj77Q/+a/0IFaIktfnWhcns OrcRq1UE2P79NGQr0HrpJ/5k61XkrxA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BC97462260; Fri, 12 Apr 2024 13:07:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C47CC113CC; Fri, 12 Apr 2024 13:07:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712927262; bh=WXXIdGk+X4xSO8A0Mdd/JdZXvSOz7cKKHzKcx7zp/e4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=mlWYRY6R+uO4KNbt8cIf64MguVd8/GHUg7jqEfibnb2j2yYOr842hoff3W6jZ2W6Q BRWCuZA/oNlXy6/0CFH3viAXrc8qD5Z1kg2VqyfMrkRlL0GkKt6FGGkq7vjol+/rWf xhKn1pcS/RFNPqEmpu+De8hHFtcOYW9290Q6wreBB+LuxJjv7MvmphVuMNI5yVeK6v 8LwCZ6+IMlvHhnGCu56SknAEpcfLvStMVcRpKtbhCnCjRQrnLJanixlnZPvxJPcLtA DyvXUuh5xMgv1rPhe/ETCYBkM2o42kXk36Yi7g8UEQFJ2zPIyYqG+w5RiuGqXWqE3I xnLxdM3U5CxIw== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1rvGd1-003tLC-MV; Fri, 12 Apr 2024 14:07:39 +0100 Date: Fri, 12 Apr 2024 14:07:38 +0100 Message-ID: <86le5isp9h.wl-maz@kernel.org> From: Marc Zyngier To: Paolo Bonzini Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Oliver Upton , Tianrui Zhao , Bibo Mao , Thomas Bogendoerfer , Nicholas Piggin , Anup Patel , Atish Patra , Sean Christopherson , Andrew Morton , David Hildenbrand , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: Re: [PATCH 0/4] KVM, mm: remove the .change_pte() MMU notifier and set_pte_at_notify() In-Reply-To: <20240405115815.3226315-1-pbonzini@redhat.com> References: <20240405115815.3226315-1-pbonzini@redhat.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/29.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: pbonzini@redhat.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, oliver.upton@linux.dev, zhaotianrui@loongson.cn, maobibo@loongson.cn, tsbogend@alpha.franken.de, npiggin@gmail.com, anup@brainfault.org, atishp@atishpatra.org, seanjc@google.com, akpm@linux-foundation.org, david@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-Rspamd-Queue-Id: DDEDFC0041 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: ntqqz7hzdjxpfsntc1mkxpodq55ut115 X-HE-Tag: 1712927263-942897 X-HE-Meta: U2FsdGVkX1/nASCvEZn9OXZ3xnMIAYIaH3DUvUBajIp+JiWIc1UHL5jnAtQne0YciGu9GRq4pxTkGV4qmBeM4J1Hceu33PKhexvtgixzEV7MP96XAT958HNQ8eMVueITksS+m8H8suHC+MagpQJpcZNj5j6dbR74RV/eIWNgG3beiMOIfKQsEJGyyWSj50xvpLFAAgYdAcwVK3sjG7dlKh7CIHZFMkIxMHHZROxEsPMeUJDA4s4ZA4zt+porKGX/rzolXiZPKVNMGTUH+YduglUj3mZ5pnqG0TxTKBZiC6rJpTWMeaM2N28G4R6cR7+jPURVxRQ4ISVPcb+l86XwMh1WAku8X3/whrXsABYtB8qlA0yFDtHRRGTZDaSAoPZK2VHguQ86iWfArkpaT9SlKjAUq2JyjlSs/8syXms1GXOPWWzyZAdwtnBkcNO782MNgbyJRyifytw8K+M+GzA7qCUFHJREueK543EuFHLlInU9EDysRWz3KWhWhx45/v1td3UISv5oW4Z30H11g5mqe80IO/gHF9M/NiiBCCqzln+o7B29t0VgYnmOfwvQEJt1Xwg95xMvcu8Jx/7NdlD92Y6KZrgyMOEjZ8LOKpnt1UTPmTheOFjuLXpNqFcg0VtE0PYI/pYBvkN7s5RaO/NAi6wrVdB5W0ra179M19ZeB7Img4/ameq6zVtzsPXbof+0bi169BfPVp1v7OnkFELw541B/X0Vn41PzaTStBj1tMsoQvFGh+izR+Jf/kVEgtkRdkuJZ255fv92kA7IQj5QX9gw6isAZ2A48GigvcS8VZ776b4t4U5XEa5/vLAfhU6o2DcCDr3rH4TqKEyLBqUI5axpnyzEWILksBEyIUcZSuurN9pFU9UzkWoraY6hkzlYcxAEUTo2a+/aieJdv7vKAh+UOhA0dnk6eHlkHK411F+v2lYBEnIf1iGQaGbPBxi1xELtiDKceaDFhuo16Do 9dNai1le NmPmXp8YvkdsqUxysHPFxoPoc6+yEGRz24l9+iNjKmNrz3LK/lBj7bCBKlmUyUqyNF5d3iZqgfqsuGpbEFAXe/My8f5VPJuhcUvo2SVB31qgzgzfKPLADcty7V+zNNh6XiIDVykMfKlnB/E/Ob+xnpZkqEvMmSj8Edhp9bEzVejJZSi+krwtHRl9VvNpFrl0GODLKzREfy5R2IirKQi1PMCKu1OaI/VolYCkjZmHAvOksOTHFqx0gMi2j2qG4KbtH4qdEIkdSIjoeOJiD3QSGl6ah6NF99M7MkjxOFhVTVcvj83GchIp0BvjtgHy0YWO9u9NV 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 Fri, 05 Apr 2024 12:58:11 +0100, Paolo Bonzini wrote: > > The .change_pte() MMU notifier callback was intended as an optimization > and for this reason it was initially called without a surrounding > mmu_notifier_invalidate_range_{start,end}() pair. It was only ever > implemented by KVM (which was also the original user of MMU notifiers) > and the rules on when to call set_pte_at_notify() rather than set_pte_at() > have always been pretty obscure. > > It may seem a miracle that it has never caused any hard to trigger > bugs, but there's a good reason for that: KVM's implementation has > been nonfunctional for a good part of its existence. Already in > 2012, commit 6bdb913f0a70 ("mm: wrap calls to set_pte_at_notify with > invalidate_range_start and invalidate_range_end", 2012-10-09) changed the > .change_pte() callback to occur within an invalidate_range_start/end() > pair; and because KVM unmaps the sPTEs during .invalidate_range_start(), > .change_pte() has no hope of finding a sPTE to change. > > Therefore, all the code for .change_pte() can be removed from both KVM > and mm/, and set_pte_at_notify() can be replaced with just set_pte_at(). > > Please review! Also feel free to take the KVM patches through the mm > tree, as I don't expect any conflicts. > > Thanks, > > Paolo > > Paolo Bonzini (4): > KVM: delete .change_pte MMU notifier callback > KVM: remove unused argument of kvm_handle_hva_range() > mmu_notifier: remove the .change_pte() callback > mm: replace set_pte_at_notify() with just set_pte_at() > > arch/arm64/kvm/mmu.c | 34 ----------------- > arch/loongarch/include/asm/kvm_host.h | 1 - > arch/loongarch/kvm/mmu.c | 32 ---------------- > arch/mips/kvm/mmu.c | 30 --------------- > arch/powerpc/include/asm/kvm_ppc.h | 1 - > arch/powerpc/kvm/book3s.c | 5 --- > arch/powerpc/kvm/book3s.h | 1 - > arch/powerpc/kvm/book3s_64_mmu_hv.c | 12 ------ > arch/powerpc/kvm/book3s_hv.c | 1 - > arch/powerpc/kvm/book3s_pr.c | 7 ---- > arch/powerpc/kvm/e500_mmu_host.c | 6 --- > arch/riscv/kvm/mmu.c | 20 ---------- > arch/x86/kvm/mmu/mmu.c | 54 +-------------------------- > arch/x86/kvm/mmu/spte.c | 16 -------- > arch/x86/kvm/mmu/spte.h | 2 - > arch/x86/kvm/mmu/tdp_mmu.c | 46 ----------------------- > arch/x86/kvm/mmu/tdp_mmu.h | 1 - > include/linux/kvm_host.h | 2 - > include/linux/mmu_notifier.h | 44 ---------------------- > include/trace/events/kvm.h | 15 -------- > kernel/events/uprobes.c | 5 +-- > mm/ksm.c | 4 +- > mm/memory.c | 7 +--- > mm/migrate_device.c | 8 +--- > mm/mmu_notifier.c | 17 --------- > virt/kvm/kvm_main.c | 50 +------------------------ > 26 files changed, 10 insertions(+), 411 deletions(-) > Reviewed-by: Marc Zyngier M. -- Without deviation from the norm, progress is not possible.