[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <f0f9c66d-ae94-4eb1-b7e5-6a0a9f0d4798@www.fastmail.com>
Date: Sat, 21 May 2022 21:03:01 -0700
From: "Andy Lutomirski" <luto@...nel.org>
To: "Sean Christopherson" <seanjc@...gle.com>
Cc: "Chao Peng" <chao.p.peng@...ux.intel.com>,
"kvm list" <kvm@...r.kernel.org>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>,
linux-mm@...ck.org, linux-fsdevel@...r.kernel.org,
"Linux API" <linux-api@...r.kernel.org>, linux-doc@...r.kernel.org,
qemu-devel@...gnu.org, "Paolo Bonzini" <pbonzini@...hat.com>,
"Jonathan Corbet" <corbet@....net>,
"Vitaly Kuznetsov" <vkuznets@...hat.com>,
"Wanpeng Li" <wanpengli@...cent.com>,
"Jim Mattson" <jmattson@...gle.com>,
"Joerg Roedel" <joro@...tes.org>,
"Thomas Gleixner" <tglx@...utronix.de>,
"Ingo Molnar" <mingo@...hat.com>, "Borislav Petkov" <bp@...en8.de>,
"the arch/x86 maintainers" <x86@...nel.org>,
"H. Peter Anvin" <hpa@...or.com>,
"Hugh Dickins" <hughd@...gle.com>,
"Jeff Layton" <jlayton@...nel.org>,
"J . Bruce Fields" <bfields@...ldses.org>,
"Andrew Morton" <akpm@...ux-foundation.org>,
"Mike Rapoport" <rppt@...nel.org>,
"Steven Price" <steven.price@....com>,
"Maciej S . Szmigiero" <mail@...iej.szmigiero.name>,
"Vlastimil Babka" <vbabka@...e.cz>,
"Vishal Annapurve" <vannapurve@...gle.com>,
"Yu Zhang" <yu.c.zhang@...ux.intel.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
"Nakajima, Jun" <jun.nakajima@...el.com>,
"Dave Hansen" <dave.hansen@...el.com>,
"Andi Kleen" <ak@...ux.intel.com>,
"David Hildenbrand" <david@...hat.com>, aarcange@...hat.com,
ddutile@...hat.com, dhildenb@...hat.com,
"Quentin Perret" <qperret@...gle.com>,
"Michael Roth" <michael.roth@....com>,
"Michal Hocko" <mhocko@...e.com>
Subject: Re: [PATCH v6 4/8] KVM: Extend the memslot to support fd-based private memory
On Fri, May 20, 2022, at 11:31 AM, Sean Christopherson wrote:
> But a dedicated KVM ioctl() to add/remove shared ranges would be easy
> to implement
> and wouldn't necessarily even need to interact with the memslots. It
> could be a
> consumer of memslots, e.g. if we wanted to disallow registering regions
> without an
> associated memslot, but I think we'd want to avoid even that because
> things will
> get messy during memslot updates, e.g. if dirty logging is toggled or a
> shared
> memory region is temporarily removed then we wouldn't want to destroy
> the tracking.
>
> I don't think we'd want to use a bitmap, e.g. for a well-behaved guest, XArray
> should be far more efficient.
>
> One benefit to explicitly tracking this in KVM is that it might be
> useful for
> software-only protected VMs, e.g. KVM could mark a region in the XArray
> as "pending"
> based on guest hypercalls to share/unshare memory, and then complete
> the transaction
> when userspace invokes the ioctl() to complete the share/unshare.
That makes sense.
If KVM goes this route, perhaps there the allowed states for a GPA should include private, shared, and also private-and-shared. Then anyone who wanted to use the same masked GPA for shared and private on TDX could do so if they wanted to.
Powered by blists - more mailing lists