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

Ackerley Tng
2023-03-06T18:22:12Z

Chao Peng <chao.p.peng@linux.intel.com> writes:

> On Fri, Feb 10, 2023 at 11:59:23AM -0800, Vishal Annapurve wrote:
>> On Tue, Jan 17, 2023 at 7:11 PM Vishal Annapurve <vannapurve@google.com>
>> wrote:
>> >
>> > ...

>> > > 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?
>> >
>> > List of testcases that I was tracking (covered by the current
>> > selftests) as required:
>> > 1) Ensure private memory contents are not accessible to host userspace
>> > using the HVA
>> > 2) Ensure shared memory contents are visible/accessible from both host
>> > userspace and the guest
>> > 3) Ensure 1 and 2 holds across explicit memory conversions
>> > 4) Exercise memory conversions with mixed shared/private memory pages
>> > in a huge page to catch issues like [2]
>> > 5) Ensure that explicit memory conversions don't affect nearby GPA
>> ranges
>> >
>> > Test Cases that will be covered by TDX/SNP selftests (in addition to
>> > above scenarios):
>> > 6) Ensure 1 and 2 holds across implicit memory conversions
>> > 7) Ensure that implicit memory conversions don't affect nearby GPA
>> ranges
>> >
>> > Additional testcases possible:
>> > 8) Running conversion tests for non-overlapping GPA ranges of
>> > same/different memslots from multiple vcpus
>> >
>> > [1] -
>> https://github.com/sean-jc/linux/commit/7e536bf3c45c623425bc84e8a96634efc3a619ed
>> > [2] -
>> https://lore.kernel.org/linux-mm/CAGtprH82H_fjtRbL0KUxOkgOk4pgbaEbAydDYfZ0qxz41JCnAQ@mail.gmail.com/

>> List of additional testcases that could help increase basic coverage
>> (including what sean mentioned earlier):
>> 1) restrictedmem functionality testing
>> - read/write/mmap should not work
>> - fstat/fallocate should work as expected
>> 2) restrictedmem registration/modification testing with:
>> - bad alignment, bad fd, modifying properties of existing memslot
>> - Installing multiple memslots with ranges within the same
>> restricted mem files
>> - deleting memslots with restricted memfd while guests are being
>> executed

> In case you havn't started, I will work on 1) and 2) for the following
> days. As a start, I will first add restrictedmem tests (without KVM) then
> move to new memslots related tests.

> Chao

>> 3) Runtime restricted mem testing:
>> - Access vs conversion testing from multiple vcpus
>> - conversion and access to non-overlapping ranges from multiple vcpus

>> Regards,
>> Vishal

Chao, I'll work on

+ Running conversion tests for non-overlapping GPA ranges of
same/different memslots from multiple vcpus
+ Deleting memslots with restricted memfd while guests are being
executed
+ Installing multiple memslots with ranges within the same restricted
mem files

this week.