Message ID | 20231105163040.14904-36-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 E9886C4167B for <linux-mm@archiver.kernel.org>; Sun, 5 Nov 2023 16:35:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8179E440178; Sun, 5 Nov 2023 11:35:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7C7A5440150; Sun, 5 Nov 2023 11:35:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64B6A440178; Sun, 5 Nov 2023 11:35:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5592F440150 for <linux-mm@kvack.org>; Sun, 5 Nov 2023 11:35:25 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3674A80486 for <linux-mm@kvack.org>; Sun, 5 Nov 2023 16:35:25 +0000 (UTC) X-FDA: 81424451010.11.A3A6940 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf18.hostedemail.com (Postfix) with ESMTP id 7857B1C0020 for <linux-mm@kvack.org>; Sun, 5 Nov 2023 16:35:23 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=K5S88On0; spf=pass (imf18.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699202123; 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=JI038vGa+9l4j36u3/UOgkDOr4COidrQJinDT6XHM/0=; b=grfiuaz+3EpP9UWu9eCide4Jk3aayun3ksAfFRmMPAVFSZh6qUcv94wPJj/CxRNWk3R9in 8l9TulfakRylIW2V7CPDuy/E3ISHE8MQHkNhsrqAW8bo2tOUwlKN6Rg/B5nI1FUjlAxPbi Fb2Z/d/LFFCHeqeauAwpBgFuq6KTwwc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699202123; a=rsa-sha256; cv=none; b=XHICS9aEEJaMwv05CPpjadZFMKVA35vJ1aDBHPwMGHwkVTR/vGMkiaZ0nEEwI1J7VlLFvi nu2iTFfqN46b2Ve+09q5JmkrySyH8MRt8A7o08LaCPXANTz8rFBFUTAJcX5A4gvAIF1csu u7nyXL7lGDOQE8lNhprwTIB/mSmETAU= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=K5S88On0; spf=pass (imf18.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699202122; h=from:from: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; bh=JI038vGa+9l4j36u3/UOgkDOr4COidrQJinDT6XHM/0=; b=K5S88On0oHV0S9YMAUsKZ9e6q9JoSJc5u1LciseRe/OLTiY7cCMfg1nzAHi8+rHPPczZUq Smd1sTx52CMr0wPBSL/utgQL99W1bf/tYJYcKTI9wbxM5GFeZRpyX+djlDw/ifuXz4+piX EG5DktbYoDyBwNTModE3VJx+IJOn5RI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-299-4FlDTlVyN5-dKH0IlJkdsg-1; Sun, 05 Nov 2023 11:35:19 -0500 X-MC-Unique: 4FlDTlVyN5-dKH0IlJkdsg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DD3E7101A52D; Sun, 5 Nov 2023 16:35:17 +0000 (UTC) Received: from avogadro.redhat.com (unknown [10.39.192.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2596C2166B26; Sun, 5 Nov 2023 16:35:11 +0000 (UTC) From: Paolo Bonzini <pbonzini@redhat.com> To: Paolo Bonzini <pbonzini@redhat.com>, Marc Zyngier <maz@kernel.org>, Oliver Upton <oliver.upton@linux.dev>, Huacai Chen <chenhuacai@kernel.org>, Michael Ellerman <mpe@ellerman.id.au>, Anup Patel <anup@brainfault.org>, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Sean Christopherson <seanjc@google.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Christian Brauner <brauner@kernel.org>, "Matthew Wilcox (Oracle)" <willy@infradead.org>, Andrew Morton <akpm@linux-foundation.org> Cc: 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 <xiaoyao.li@intel.com>, Xu Yilun <yilun.xu@intel.com>, Chao Peng <chao.p.peng@linux.intel.com>, Fuad Tabba <tabba@google.com>, Jarkko Sakkinen <jarkko@kernel.org>, Anish Moorthy <amoorthy@google.com>, David Matlack <dmatlack@google.com>, Yu Zhang <yu.c.zhang@linux.intel.com>, Isaku Yamahata <isaku.yamahata@intel.com>, =?utf-8?q?Micka=C3=ABl_Sala?= =?utf-8?q?=C3=BCn?= <mic@digikod.net>, Vlastimil Babka <vbabka@suse.cz>, Vishal Annapurve <vannapurve@google.com>, Ackerley Tng <ackerleytng@google.com>, Maciej Szmigiero <mail@maciej.szmigiero.name>, David Hildenbrand <david@redhat.com>, Quentin Perret <qperret@google.com>, Michael Roth <michael.roth@amd.com>, Wang <wei.w.wang@intel.com>, Liam Merwick <liam.merwick@oracle.com>, Isaku Yamahata <isaku.yamahata@gmail.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Subject: [PATCH 35/34] KVM: Prepare for handling only shared mappings in mmu_notifier events Date: Sun, 5 Nov 2023 17:30:38 +0100 Message-ID: <20231105163040.14904-36-pbonzini@redhat.com> In-Reply-To: <20231105163040.14904-1-pbonzini@redhat.com> References: <20231105163040.14904-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Stat-Signature: ebqcy31tznx6xrd8mb5hmmyyo9tnjdzw X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 7857B1C0020 X-Rspam-User: X-HE-Tag: 1699202123-231924 X-HE-Meta: U2FsdGVkX1/QTopjT4RWLgoGNZ1rKB4+5ATUaeA56ctMoJjP+Ks5MCjBNBw+nuBbTKAq5husyEgFvq8s5zLS/mcKHGyseATEUTeqZqPnkye28XqqRYphPm241UcGZsk0fYruEQDM1GWpAdrTv4jrDSU3tcBwsFyFuYfYlyMlluaiVoPzNYa3MmKf8T/PlxKTFFjwE8llpUyMxit39Y2Wa/tJsuO0jg26b+UAhqNdHM+tS2SpEq6zs0NL5YyUZTSYW9R4dvhGgZ9GnCoNwOIYfutQvcm2VZtX6vYAvMGkD7H5uTvFA3mYOrAblKQwjUQnCr3r0bnjvmS64hgM+qScrQC31d3QBTTnqb7anAzCpQUDScjIyUTeJ5k+3CYL7xPn7LlR6nfEpe0GqvU/7TL8kaB99nBCMsuRwzjsfBct4dbuc++bUcxMsSp7pMEWc6GqEHQ4ZhyrmRchaqfqMawRwx+n2zadJW40iy1fL3kzIUkK5QnTdmfu2Rrm/DICBwSSZ3AZcoOQzlO0odiAoSfiDkAd3r9jXuxwr/UvuTAIR5d3ZXEY0sPQtYl0kNmCe2TB0BE1+t4VgR84mOqgcy5zdFpaOXP2a/aNV5OnbMFTm3kn0YqakPFT3IeOP4P7ez0ZyBs5lWKK6liLg19Ru9tgWRdknVRW3fWiLZCRYMgIfuIkZzjHrKEXF7TL7fqJqjTWmfa/sH99ofb2nnhz4yu43KXgFeR3yUql8/FKZPpP3mb57ymOlkn2qmsACcbO8+k+DmAUiWOlGA0D903/vU+E/HRAia3o/Qgh4mtyI5goodZrh6FCx8UIfIGGYiqNkz38ViKCoK5L+TU90ELN8bnYbb2mXWL0C+A7f6Hi4D1MHBI5qXIQa0gDsZdxuJUdylVTxAk0qgtkNzhsp6oZZkC64FDMgjW8hkEu3vrajwxaoFCMvgVZYzPad4GkWb138lXO5VK/du2OMqDIA3bf5by PmFmIzqz h/236/t3XilT7zRa9wYZQIXU61plLIkcYE7yCQMUviJoGWcYuL5yKdSfvE+pr7OzomoqSU8dQgHhthOIob85sTNGo6xkKnqiLX/tjIQcFTJxdR/B9JDN/1lj/McEG3i3rLMtx/tzGsYe7fU3Od8HFQEEkqWNYG75pPgFtKDD7xgOPvJA1gbf9I2Kyqx10v3ZcAEAChlp1io4u5iZvc+B1q/TjEl5wP3dMB72TE2B2dLQV+QDJ7o+eoJsSOxMpy31EAqidEcacnXBuOUVBknOonCUPspSJP7jJvR6O7frWKUvZrwllNsszOc/pTq0lqaY5hchR6qhhYIkiPQu3+5D8wvy/wdWFuIufdSIRzOz4/aSSewoIsrD/7buAdQ== 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
KVM: guest_memfd() and per-page attributes
|
expand
|
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 3ebc6912c54a..4d5d139b0bde 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -264,6 +264,8 @@ struct kvm_gfn_range { gfn_t start; gfn_t end; union kvm_mmu_notifier_arg arg; + bool only_private; + bool only_shared; 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 8758cb799e18..9170a61ea99f 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 = range->arg; + + /* + * HVA-based notifications provide a userspace address, + * and as such are only relevant for shared mappings. + */ + gfn_range.only_private = false; + gfn_range.only_shared = true; gfn_range.may_block = range->may_block; /* @@ -2493,6 +2500,16 @@ static __always_inline void kvm_handle_gfn_range(struct kvm *kvm, gfn_range.arg = range->arg; gfn_range.may_block = range->may_block; + /* + * If/when KVM supports more attributes beyond private .vs shared, this + * _could_ set only_{private,shared} appropriately if the entire target + * range already has the desired private vs. shared state (it's unclear + * if that is a net win). For now, KVM reaches this point if and only + * if the private flag is being toggled, i.e. all mappings are in play. + */ + gfn_range.only_private = false; + gfn_range.only_shared = false; + for (i = 0; i < kvm_arch_nr_memslot_as_ids(kvm); i++) { slots = __kvm_memslots(kvm, i);