From: Sean Christopherson <seanjc@google.com>
To: Marc Orr <marcorr@google.com>
Cc: Chao Peng <chao.p.peng@linux.intel.com>,
Vishal Annapurve <vannapurve@google.com>,
x86@kernel.org, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
pbonzini@redhat.com, vkuznets@redhat.com, wanpengli@tencent.com,
jmattson@google.com, joro@8bytes.org, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, shuah@kernel.org, yang.zhong@intel.com,
ricarkol@google.com, aaronlewis@google.com, wei.w.wang@intel.com,
kirill.shutemov@linux.intel.com, corbet@lwn.net,
hughd@google.com, jlayton@kernel.org, bfields@fieldses.org,
akpm@linux-foundation.org, yu.c.zhang@linux.intel.com,
jun.nakajima@intel.com, dave.hansen@intel.com,
michael.roth@amd.com, qperret@google.com, steven.price@arm.com,
ak@linux.intel.com, david@redhat.com, luto@kernel.org,
vbabka@suse.cz, erdemaktas@google.com, pgonda@google.com,
nikunj@amd.com, diviness@google.com, maz@kernel.org,
dmatlack@google.com, axelrasmussen@google.com,
maciej.szmigiero@oracle.com, mizhang@google.com,
bgardon@google.com, ackerleytng@google.com
Subject: Re: [V1 PATCH 1/6] KVM: x86: Add support for testing private memory
Date: Mon, 28 Nov 2022 16:21:33 +0000 [thread overview]
Message-ID: <Y4TgDZPTXnnoTitB@google.com> (raw)
In-Reply-To: <CAA03e5EXU-TpZP2tyjEjfAAr9aNNcgmgOX6Rqv7ng+4Xc9H5AQ@mail.gmail.com>
On Wed, Nov 23, 2022, Marc Orr wrote:
> On Tue, Nov 22, 2022 at 12:06 PM Sean Christopherson <seanjc@google.com> wrote:
> > > > @@ -221,6 +220,9 @@ struct kvm_page_fault {
> > > > /* The memslot containing gfn. May be NULL. */
> > > > struct kvm_memory_slot *slot;
> > > >
> > > > + /* Derived from encryption bits of the faulting GPA for CVMs. */
> > > > + bool is_private;
> > >
> > > Either we can wrap it with the CONFIG_HAVE_KVM_PRIVATE_MEM_TESTING or if
> > > it looks ugly I can remove the "const" in my code.
> >
> > Hmm, I think we can keep the const. Similar to the bug in kvm_faultin_pfn()[*],
> > the kvm_slot_can_be_private() is bogus. A fault should be considered private if
> > it's marked as private, whether or not userspace has configured the slot to be
> > private is irrelevant. I.e. the xarray is the single source of truth, memslots
> > are just plumbing.
>
> If we incorporate Sean's suggestion and use xarray as the single
> source of truth, then can we get rid of the
> HAVE_KVM_PRIVATE_MEM_TESTING config?
No, we still want the opt-in config.
> Specifically, the self test can call the KVM_MEMORY_ENCRYPT_REG_REGION
> ioctl which will set the bits for the private FD within KVM's xarray.
Yes, but that should be disallowed for regular VMs without HAVE_KVM_PRIVATE_MEM_TESTING=y.
> (Maybe this was part of the point that Sean was making; but his
> feedback seemed focused on the discussion about keeping `is_private`
> const, whereas I've been staring at this trying to figure out if we
> can run the UPM selftests on a non-TDX/SNP VM WITHOUT a special
> test-only config. And Sean's idea seems to eliminate the need for the
> awkward CONFIG.)
"need" was always relative. It's obviously possible to enable any code without a
Kconfig, the question is whether or not it's a good idea to do so. In this case,
the answer is "no", because allowing private memory opens up a number a of code
paths and thus potential bugs. And we need something for kvm_arch_has_private_mem()
because returning "true" unconditionally is not correct for regular VMs.
next prev parent reply other threads:[~2022-11-28 16:21 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-11 1:42 [V1 PATCH 0/6] selftests: KVM: selftests for fd-based private memory Vishal Annapurve
2022-11-11 1:42 ` [V1 PATCH 1/6] KVM: x86: Add support for testing " Vishal Annapurve
2022-11-22 10:07 ` Chao Peng
2022-11-22 20:06 ` Sean Christopherson
2022-11-24 1:49 ` Marc Orr
2022-11-28 16:21 ` Sean Christopherson [this message]
2022-11-24 13:17 ` Chao Peng
2022-12-02 0:26 ` Michael Roth
2022-11-11 1:42 ` [V1 PATCH 2/6] KVM: Selftests: Add support for " Vishal Annapurve
2022-11-11 1:42 ` [V1 PATCH 3/6] KVM: selftests: x86: Add IS_ALIGNED/IS_PAGE_ALIGNED helpers Vishal Annapurve
2022-11-11 1:42 ` [V1 PATCH 4/6] KVM: selftests: x86: Execute VMs with private memory Vishal Annapurve
2022-11-14 19:37 ` Peter Gonda
2022-11-15 1:53 ` Vishal Annapurve
2022-12-08 21:56 ` Vishal Annapurve
2022-11-11 1:42 ` [V1 PATCH 5/6] KVM: selftests: Add get_free_huge_2m_pages Vishal Annapurve
2022-11-11 1:42 ` [V1 PATCH 6/6] KVM: selftests: x86: Add selftest for private memory Vishal Annapurve
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y4TgDZPTXnnoTitB@google.com \
--to=seanjc@google.com \
--cc=aaronlewis@google.com \
--cc=ackerleytng@google.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=axelrasmussen@google.com \
--cc=bfields@fieldses.org \
--cc=bgardon@google.com \
--cc=bp@alien8.de \
--cc=chao.p.peng@linux.intel.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=diviness@google.com \
--cc=dmatlack@google.com \
--cc=erdemaktas@google.com \
--cc=hpa@zytor.com \
--cc=hughd@google.com \
--cc=jlayton@kernel.org \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=jun.nakajima@intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luto@kernel.org \
--cc=maciej.szmigiero@oracle.com \
--cc=marcorr@google.com \
--cc=maz@kernel.org \
--cc=michael.roth@amd.com \
--cc=mingo@redhat.com \
--cc=mizhang@google.com \
--cc=nikunj@amd.com \
--cc=pbonzini@redhat.com \
--cc=pgonda@google.com \
--cc=qperret@google.com \
--cc=ricarkol@google.com \
--cc=shuah@kernel.org \
--cc=steven.price@arm.com \
--cc=tglx@linutronix.de \
--cc=vannapurve@google.com \
--cc=vbabka@suse.cz \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
--cc=wei.w.wang@intel.com \
--cc=x86@kernel.org \
--cc=yang.zhong@intel.com \
--cc=yu.c.zhang@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.