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 1E1AFC4332F for ; Thu, 2 Nov 2023 14:03:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 88B7780028; Thu, 2 Nov 2023 10:03:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 83B038D000F; Thu, 2 Nov 2023 10:03:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B51A80028; Thu, 2 Nov 2023 10:03:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 57CF68D000F for ; Thu, 2 Nov 2023 10:03:55 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EFBFA1CBB5A for ; Thu, 2 Nov 2023 14:03:54 +0000 (UTC) X-FDA: 81413182788.19.5FB2A51 Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by imf23.hostedemail.com (Postfix) with ESMTP id B3A0C1402D0 for ; Thu, 2 Nov 2023 14:02:17 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xFQE1h8w; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of tabba@google.com designates 209.85.219.45 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698933738; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=U02Q7Uz9N3AbuVAnly2/lx/zX8zq9jlSHWgyTKq7w1o=; b=g1Lhdt8uGXsHzgrmyZK6e/moaUIihaJL69MNiD8NucgVTkY/AjdeptYG8vdrT9ZcunkpKO /lXsC9F7tD4k/6cjiTdwNatd65stXYBCwRuYfm6HYiTEu1lT8RNestCfgWUVXZZhzj29yx Go708hNFl0HS5mcFwHHUpwA4yMK9fZQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xFQE1h8w; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of tabba@google.com designates 209.85.219.45 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698933738; a=rsa-sha256; cv=none; b=wISd9yooU2PhGwUj/QSnpW7XwR6P00isQG+D0xOmxkty2/NGbC7KgzBGPj88piUngHAg5s iRiiBsrhTQzu3rmsWHjD37Cnox65C+74Sca0DqdnbPJvhgOlUM71L5AKh3do03pSQtV95a dVoZIrAw8/De88uUk9yneuvkwLZlPqM= Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-66d122e0c85so5460146d6.3 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=kvack.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=xFQE1h8wUuCebtZfJQ9Tkgfq993xFAdJhDDZ58+/W7MQWj61IhPNo/HEqw34Bt73Ao EWSU3Hg/Uik/lHb2+UeRJRWxOvGDrnJjI15FBPLezNJvPr77sr5bFwlJvDkrtIUtSH1l IzQhcjX6mAQhZ+VcfLnGJcTQWLzGo8+098HXAGvIM6p3FCb0pNVHb8nzUxbjkCKnX5fZ YykZkBMzPxK9rYglCRrNgEHlKY+AKVvkKbSfo6JhgiNVylysHPqAuri9Vu+LisVbj+Sx EeILsofed1Aj+GNaDmSPuzRhSk3gstcfIEJw3sAL/eqGK6WlUEE04f2ft099mpN2Td3V OpXQ== 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=vuLXVYrgGwvhNtTNaxVb+R4UlMuXETo6SEkmKizaKn+FoKwy+fim3X1hipR3hBkAQh apxOqxHTK0wZkQXSZ078GGQJq9M1Ae36DLV7uI5yawuu6MyEttsxo2MpRjdERo2WYvqx nLwwYwJmwXuyoak7F1tiLh5Vu8VOwVKtcXchkIlYudJMlpy17nrl2yuR9grVtOEbLB8a +AnNJ8EMGQMEiS6jCPCKkdUXbsb8YwlU9Wnp9xG2ldNmhHoKnZ8XPyDKiFLiXJ7jJFxV 26yke5+10KMDoCwSCvxW28R4iU8wQN8rwFmg//INcJGUzAC2sOhM7X6GzcaAl24C1kCa RuSg== X-Gm-Message-State: AOJu0YwmeZPKVnRjO2WHGo94czx1v0DEw34fKrtdEbQv6zql72M7nV0O glsAw3owrpFGB2GpywbgzoI8hSCuqE5X7eIopJPf6w== X-Google-Smtp-Source: AGHT+IFvNZeWhAvz2uQajFEXI2VcBpwz2QgnpWebvg+MWTN/rWHt/IyUj1LF075258r9rR5adzICFKMJ4AWj6dfus40= 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-Rspamd-Queue-Id: B3A0C1402D0 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: fdbm9ynzhxqftr618mojh14boznoz78e X-HE-Tag: 1698933737-905380 X-HE-Meta: U2FsdGVkX18hxGVaAT2aY5cv32ieaxze2dhEgByFs4b9hPPkHrBmCZnw/i+paTJiEbGhYi+5H6Q4TnbdCYofPYDczaOw335vV35RQBusNEMdysDcWlan4L7LF+MMlTY02sB3JK5O30GVHNnYxdYQVfrllFusGjNFOVvdtvz71cEnXfq8aZye5QBSFRYfdHxCI9q9hpiKYwstgG8DOyYKl8vstc7S57QRW4JMAMWH6OtI7f4X0gI9Egh7P1UtFqAMJb6AfrM37ibFB0qChdxfGEUqnJdrIK08T/DgBFKUSL5MPszezfIy0rM4wB19qto7Cu/lN3JEh7xQHzxoGoJPbkcQSiU0IxFjisKXksYQsJbk8HAhPDXOkrmY3zn+nq1Lgh2ZXs9r8fVDzLe8R4kzzpQgXkAgzFmoiBPh/EgQSp1YLiDoxTsIegEFBmHcDFrtb+xaCZvBOSLZ7XY/9yN3mGNKg8zOy/MVx0EzJ5Q+GP8Lw4UGyHWjRIQV6ta3aw0PHc/ZtwKPwdZjj6Z2sHAS90LXaPAw27lvmXhRdhP4FQAYtTrSRm2NE7XD6Gp6lj9hmAASv4IN0peDJsR/k5aW1WWCGO3UpKp7ypNOdY1MdY6WbCh8Ma4y3fLPRKJ3ElAidTwr6+15qK6ikCz8a/8VO88lWDNLrx3oyg3ruODaRXoZjGJjb4QJuaAT/fAeqHejB8VTd657ASoySalixtJ4e/cXIivPp3ZMErooZ9AW5yk1icRN0CTY0QJpqc/7sUpy8otrKzw0TAREY2uqsQDjUmR/Ogj5Mm6pkUYeeml2KmgpMYrmD+wxAM2GOgxcseZRh6WPIT3ZVJ9gTU9VJsJqt78Lbzx+1ugzvI64jVFpthsHq67DK7Blm8tbLvsPSZUFooIQ/vN+xEK1gluiPT6nlTbhnthiS1F7f1VU8hXh4sKlA0I4dZmJ8R3v3tiumYrWuYguho2Z0dLoe6RYJdy qZ4zexrr 2iYRpQEpGnvuErW2KD+0kycaNwaUuY0vJ7+myktw1j14IKQB3gD1T7B2viNk0LYQFOvLvmBfQmSJe2WBk/Ry7kjcyC8kiNSDOmVwQ90a/vRdU9YyrMs7B0Liq67w798W2H3Xy/EetD8WG7SdxNETq5R2HArOv2gtwltBJnYiaNgTzOrATQqfB3Wh24WRoahoR6xH6bMSGbsAl0yhiiEVa5/xWYDiK1ejazUJkMFuRPWb377Fd6ZWWpx9PW/pkd5R4OLoiZoHNjjlPUsAXdrC14fe+Cw7ygQqijsACGb2hKch2r7O8f0tbbl4OPJ6Z0R1D2UHYwM+k0MpC9kQ18rfq0CRGM27zpEC9OD9mC3HfrlQdOe+OziEZmVmn13lmUzYYKDh4Kx1LWzmMFNGKJhOysVbrZcFdemiilQBAzqUJFv+HEEg= 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: 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 >