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@xxxxxxxxxx> 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@xxxxxxxxxxxxxx/ > > 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