Received: by 2002:a05:7412:b795:b0:e2:908c:2ebd with SMTP id iv21csp399521rdb; Thu, 2 Nov 2023 07:02:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH8RXNwlypU2Jz3lKTCOBf66Q80v8TZyhkaiFbaBDQHPOTqEdZ/pcl1PLs4LFHi9Cv0oa2U X-Received: by 2002:a05:6a20:1456:b0:174:63a9:2aa with SMTP id a22-20020a056a20145600b0017463a902aamr18877758pzi.18.1698933757131; Thu, 02 Nov 2023 07:02:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698933757; cv=none; d=google.com; s=arc-20160816; b=YBRz/KpLQpqJJy9diQhZbvSzr7sf9xj3AttjFp7IXqm6FGlyQi/UvSJ8UEfxoa8Hjs pVyl+9RrkqJZcGj0oHqhaBUkrkOIstU8Fnc1Y46cGnyxOOEF4oVgMKcqMxqiK0N0XPGX AKqqdGx44ezJov80eznweIpsz/Q9FuYskHp8bB+nlQoGBB5DdciKHlYlPbyCMGitf6mn ZI/TsPo9eJXZ12ijQs9m/w9YUMSvL9P0E/n7pars5Heip56C3Y5sO6eZmJfoKAuE0mB4 ukSU/PGyN3Z2myxKCOCUn8RjZ1NBbu8qIzDW7zfIxB90ypi6Fm7s1YRiVDJKMdX7uILd I2pA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=U02Q7Uz9N3AbuVAnly2/lx/zX8zq9jlSHWgyTKq7w1o=; fh=xK+wiX2TTq7O2X4TlNj4MXVc7h6ma8eyuy1Ur/RMLHE=; b=wYzI6xIYXvftMu8ooEMKUZbWv9dCzVRii/Q9MA4sO/xyiZYoSk9xYz5E6dOP5hypG8 zBkLd++STdUwKU09CHQSZTwu/6j7rWZphs7ql686AIjFcsdBlx6Tm69vKWwfNSqIuuMU V3FoaK6wtUbf/Vk/PkFITx/S7Y7VuER5VT4sPg7Bj8rI2Hp0Y4gjt8bnn6EOfgQ7zRl6 tev+qW1dKBwq/9I6GpxXCx0AAsKNQliDriQvaM6ycRI7vi+n3hR8WtKVYDtN3RhrKujM j7IeZ+0FS8QQj7sUWEWmPp14CK62PKQLiRooVctecuvdpQbubaYLpuu2dTKTk/vGMFmS b7mw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Yxy4gQpw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id k29-20020a63ba1d000000b00565360714f0si1723388pgf.902.2023.11.02.07.02.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Nov 2023 07:02:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Yxy4gQpw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id F0F3F809FA6D; Thu, 2 Nov 2023 07:02:33 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376691AbjKBOCU (ORCPT + 99 others); Thu, 2 Nov 2023 10:02:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230024AbjKBOCT (ORCPT ); Thu, 2 Nov 2023 10:02:19 -0400 Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 711A8130 for ; Thu, 2 Nov 2023 07:02:16 -0700 (PDT) Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-672096e0e89so5552426d6.1 for ; Thu, 02 Nov 2023 07:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698933735; x=1699538535; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=U02Q7Uz9N3AbuVAnly2/lx/zX8zq9jlSHWgyTKq7w1o=; b=Yxy4gQpwYzPaq9tP896yqaCi9p11oYl2Yzvg3AOcYCBzXFNcPARUyBNABoHe9j9N3V wcBmk8rMRqhtKI0gtYIRh61Q/cqDIcZE8J4dHHUV6LHQRoOmJuNLhNQ6cmmaeKBSxVRV 64KMyHAErZ+NOkvBIgGj9Mc1O1KS55eSImpiDRj1arP6EztcNJW3ziCErr+nM8bBP9/z c1srkNrEVFXof5T1vl+NJ8cXDxQh0UvP6/wANNL5klwVVRz1nyj0QLrFARtokMET/G/J lrcHEQMbta2sM5ZZpxZWXLDAHHjVIDEqCYqYABwvEC3pOo95InIC6QSaE8lq0Pi45HPM 5eKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698933735; x=1699538535; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U02Q7Uz9N3AbuVAnly2/lx/zX8zq9jlSHWgyTKq7w1o=; b=b7ZzjxqclleGH0n+dAVBqi5oVfpja7H5N9j5I94dC5ZDtkxP0Z6Pcc4cnwMNSdHtx5 zoTiJXfHiA3Ru98xPTDKIzie5fbAYe7HA6MdzHdY7ge97kCsHrDYomEJK6oO/h653naG U0jnB/4nY4drRhp+x0mmrbIceyhcZ99tnN2ppt0jK9z6iK4o6J2JcYgwMpZKhrW9Tqlo rvLSbj3iSH6MTOOWhjfAOgUL4KDNh6p8nMY/uRRIn1ZkNLvpRflc67yBnOG+g4WjY+Du VC3JXsOfP/6K/pDgZ/aOyfXWR13EaVwcmpkXVTkqcSxcwlg987WPLUUG+nbu/bgzXy2A a0kQ== X-Gm-Message-State: AOJu0YweRH2Sl5dyRLGAEVxGglFyPyr042swl6j0d9C4lc7SpLYhncAs xnIxoBdfK0clc1xRaMUXzBCxhOeFvN9t7oyFEWhQbQ== X-Received: by 2002:ad4:5c47:0:b0:66d:62b7:53f4 with SMTP id a7-20020ad45c47000000b0066d62b753f4mr28124932qva.45.1698933735448; Thu, 02 Nov 2023 07:02:15 -0700 (PDT) MIME-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-13-seanjc@google.com> In-Reply-To: <20231027182217.3615211-13-seanjc@google.com> From: Fuad Tabba Date: Thu, 2 Nov 2023 14:01:39 +0000 Message-ID: Subject: Re: [PATCH v13 12/35] KVM: Prepare for handling only shared mappings in mmu_notifier events To: Sean Christopherson Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Xiaoyao Li , Xu Yilun , Chao Peng , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Thu, 02 Nov 2023 07:02:34 -0700 (PDT) Hi, On Fri, Oct 27, 2023 at 7:22=E2=80=AFPM Sean Christopherson wrote: > > Add flags to "struct kvm_gfn_range" to let notifier events target only > shared and only private mappings, and write up the existing mmu_notifier > events to be shared-only (private memory is never associated with a > userspace virtual address, i.e. can't be reached via mmu_notifiers). > > Add two flags so that KVM can handle the three possibilities (shared, > private, and shared+private) without needing something like a tri-state > enum. > > Link: https://lore.kernel.org/all/ZJX0hk+KpQP0KUyB@google.com > Signed-off-by: Sean Christopherson > --- > include/linux/kvm_host.h | 2 ++ > virt/kvm/kvm_main.c | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 96aa930536b1..89c1a991a3b8 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -263,6 +263,8 @@ struct kvm_gfn_range { > gfn_t start; > gfn_t end; > union kvm_mmu_notifier_arg arg; > + bool only_private; > + bool only_shared; If these flags aren't used in this patch series, should this patch be moved to the other series? Also, if shared+private is a possibility, doesn't the prefix "only_" confuse things a bit? I.e., what is shared+private, is it when both are 0 or when both are 1? I assume it's the former (both are 0), but it might be clearer. Cheers, /fuad > bool may_block; > }; > bool kvm_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range); > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index cb9376833c18..302ccb87b4c1 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -635,6 +635,13 @@ static __always_inline kvm_mn_ret_t __kvm_handle_hva= _range(struct kvm *kvm, > * the second or later invocation of the handler)= . > */ > gfn_range.arg =3D range->arg; > + > + /* > + * HVA-based notifications aren't relevant to pri= vate > + * mappings as they don't have a userspace mappin= g. > + */ > + gfn_range.only_private =3D false; > + gfn_range.only_shared =3D true; > gfn_range.may_block =3D range->may_block; > > /* > -- > 2.42.0.820.g83a721a137-goog >