Re: [V2 PATCH 0/6] KVM: selftests: selftests for fd-based private memory

From: Sean Christopherson
Date: Tue Jan 17 2023 - 20:16:32 EST


On Mon, Dec 05, 2022, Vishal Annapurve wrote:
> This series implements selftests targeting the feature floated by Chao via:
> https://lore.kernel.org/lkml/20221202061347.1070246-10-chao.p.peng@xxxxxxxxxxxxxxx/T/
>
> Below changes aim to test the fd based approach for guest private memory
> in context of normal (non-confidential) VMs executing on non-confidential
> platforms.
>
> private_mem_test.c file adds selftest to access private memory from the
> guest via private/shared accesses and checking if the contents can be
> leaked to/accessed by vmm via shared memory view before/after conversions.
>
> Updates in V2:
> 1) Simplified vcpu run loop implementation API
> 2) Removed VM creation logic from private mem library

I pushed a rework version of this series to:

git@xxxxxxxxxx:sean-jc/linux.git x86/upm_base_support

Can you take a look and make sure that I didn't completely botch anything, and
preserved the spirit of what you are testing?

Going forward, no need to send a v3 at this time. Whoever sends v11 of the series
will be responsible for including tests.

No need to respond to comments either, unless of course there's something you
object to, want to clarify, etc., in which case definitely pipe up.

Beyond the SEV series, do you have additional UPM testcases written? If so, can
you post them, even if they're in a less-than-perfect state? If they're in a
"too embarassing to post" state, feel from to send them off list :-)

Last question, do you have a list of testcases that you consider "required" for
UPM? My off-the-cuff list of selftests I want to have before merging UPM is pretty
short at this point:

- Negative testing of the memslot changes, e.g. bad alignment, bad fd,
illegal memslot updates, etc.
- Negative testing of restrictedmem, e.g. various combinations of overlapping
bindings of a single restrictedmem instance.
- Access vs. conversion stress, e.g. accessing a region in the guest while it's
concurrently converted by the host, maybe with fancy guest code to try and
detect TLB or ordering bugs?