On Wed, 2024-06-05 at 15:10 -0500, Sagi Shahar wrote: > On Wed, Jun 5, 2024 at 1:38 PM Verma, Vishal L <vishal.l.verma@xxxxxxxxx> wrote: > > > > On Tue, 2023-12-12 at 12:46 -0800, Sagi Shahar wrote: > > > Hello, > > > > > > This is v4 of the patch series for TDX selftests. > > > > > > It has been updated for Intel’s v17 of the TDX host patches which was > > > proposed here: > > > https://lore.kernel.org/all/cover.1699368322.git.isaku.yamahata@xxxxxxxxx/ > > > > > > The tree can be found at: > > > https://github.com/googleprodkernel/linux-cc/tree/tdx-selftests-rfc-v5 > > > > Hello, > > > > I wanted to check if there were any plans from Google to refresh this > > series for the current TDX patches and the kvm-coco-queue baseline? > > > I'm going to work on it soon and was planning on using Isaku's V19 of > the TDX host patches That's great, thank you! > > > I'm setting up a CI system that the team is using to test updates to > > the different TDX patch series, and it currently runs the KVM Unit > > tests, and kvm selftests, and we'd like to be able to add these three > > new TDX tests to that as well. > > > > I tried to take a quick shot at rebasing it, but ran into several > > conflicts since kvm-coco-queue has in the meantime made changes e.g. in > > tools/testing/selftests/kvm/lib/x86_64/processor.c vcpu_setup(). > > > > If you can help rebase this, Rick's MMU prep series might be a good > > baseline to use: > > https://lore.kernel.org/all/20240530210714.364118-1-rick.p.edgecombe@xxxxxxxxx/ > > This patch series only includes the basic TDX MMU changes and is > missing a lot of the TDX support. Not sure how this can be used as a > baseline without the rest of the TDX patches. Are there other patch > series that were posted based on this series which provides the rest > of the TDX support? Hm you're right, I was looking more narrowly because of the kvm-coco- queue conflicts, for some of which even v19 might be too old. The MMU prep series uses a much more recent kvm-coco-queue baseline. Rick, can we post a branch with /everything/ on this MMU prep baseline for this selftest refresh? > > > > This is also available in a tree at: > > https://github.com/intel/tdx/tree/tdx_kvm_dev-2024-05-30 > > > > Thank you, > > Vishal > > > > > > > > Changes from RFC v4: > > > > > > Added patch to propagate KVM_EXIT_MEMORY_FAULT to userspace. > > > > > > Minor tweaks to align the tests to the new TDX 1.5 spec such as changes > > > in the expected values in TDG.VP.INFO. > > > > > > In RFCv5, TDX selftest code is organized into: > > > > > > + headers in tools/testing/selftests/kvm/include/x86_64/tdx/ > > > + common code in tools/testing/selftests/kvm/lib/x86_64/tdx/ > > > + selftests in tools/testing/selftests/kvm/x86_64/tdx_* > > > > > > Dependencies > > > > > > + Peter’s patches, which provide functions for the host to allocate > > > and track protected memory in the guest. > > > https://lore.kernel.org/all/20230110175057.715453-1-pgonda@xxxxxxxxxx/ > > > > > > Further work for this patch series/TODOs > > > > > > + Sean’s comments for the non-confidential UPM selftests patch series > > > at https://lore.kernel.org/lkml/Y8dC8WDwEmYixJqt@xxxxxxxxxx/T/#u apply > > > here as well > > > + Add ucall support for TDX selftests > > > > > > I would also like to acknowledge the following people, who helped > > > review or test patches in previous versions: > > > > > > + Sean Christopherson <seanjc@xxxxxxxxxx> > > > + Zhenzhong Duan <zhenzhong.duan@xxxxxxxxx> > > > + Peter Gonda <pgonda@xxxxxxxxxx> > > > + Andrew Jones <drjones@xxxxxxxxxx> > > > + Maxim Levitsky <mlevitsk@xxxxxxxxxx> > > > + Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > > > + David Matlack <dmatlack@xxxxxxxxxx> > > > + Marc Orr <marcorr@xxxxxxxxxx> > > > + Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > > + Maciej S. Szmigiero <maciej.szmigiero@xxxxxxxxxx> > > > > > > Links to earlier patch series > > > > > > + RFC v1: https://lore.kernel.org/lkml/20210726183816.1343022-1-erdemaktas@xxxxxxxxxx/T/#u > > > + RFC v2: https://lore.kernel.org/lkml/20220830222000.709028-1-sagis@xxxxxxxxxx/T/#u > > > + RFC v3: https://lore.kernel.org/lkml/20230121001542.2472357-1-ackerleytng@xxxxxxxxxx/T/#u > > > + RFC v4: https://lore.kernel.org/lkml/20230725220132.2310657-1-afranji@xxxxxxxxxx/ > > > > > > *** BLURB HERE *** > > > > > > Ackerley Tng (12): > > > KVM: selftests: Add function to allow one-to-one GVA to GPA mappings > > > KVM: selftests: Expose function that sets up sregs based on VM's mode > > > KVM: selftests: Store initial stack address in struct kvm_vcpu > > > KVM: selftests: Refactor steps in vCPU descriptor table initialization > > > KVM: selftests: TDX: Use KVM_TDX_CAPABILITIES to validate TDs' > > > attribute configuration > > > KVM: selftests: TDX: Update load_td_memory_region for VM memory backed > > > by guest memfd > > > KVM: selftests: Add functions to allow mapping as shared > > > KVM: selftests: Expose _vm_vaddr_alloc > > > KVM: selftests: TDX: Add support for TDG.MEM.PAGE.ACCEPT > > > KVM: selftests: TDX: Add support for TDG.VP.VEINFO.GET > > > KVM: selftests: TDX: Add TDX UPM selftest > > > KVM: selftests: TDX: Add TDX UPM selftests for implicit conversion > > > > > > Erdem Aktas (3): > > > KVM: selftests: Add helper functions to create TDX VMs > > > KVM: selftests: TDX: Add TDX lifecycle test > > > KVM: selftests: TDX: Adding test case for TDX port IO > > > > > > Roger Wang (1): > > > KVM: selftests: TDX: Add TDG.VP.INFO test > > > > > > Ryan Afranji (2): > > > KVM: selftests: TDX: Verify the behavior when host consumes a TD > > > private memory > > > KVM: selftests: TDX: Add shared memory test > > > > > > Sagi Shahar (11): > > > KVM: selftests: TDX: Add report_fatal_error test > > > KVM: selftests: TDX: Add basic TDX CPUID test > > > KVM: selftests: TDX: Add basic get_td_vmcall_info test > > > KVM: selftests: TDX: Add TDX IO writes test > > > KVM: selftests: TDX: Add TDX IO reads test > > > KVM: selftests: TDX: Add TDX MSR read/write tests > > > KVM: selftests: TDX: Add TDX HLT exit test > > > KVM: selftests: TDX: Add TDX MMIO reads test > > > KVM: selftests: TDX: Add TDX MMIO writes test > > > KVM: selftests: TDX: Add TDX CPUID TDVMCALL test > > > KVM: selftests: Propagate KVM_EXIT_MEMORY_FAULT to userspace > > > > > > tools/testing/selftests/kvm/Makefile | 8 + > > > .../selftests/kvm/include/kvm_util_base.h | 30 + > > > .../selftests/kvm/include/x86_64/processor.h | 4 + > > > .../kvm/include/x86_64/tdx/td_boot.h | 82 + > > > .../kvm/include/x86_64/tdx/td_boot_asm.h | 16 + > > > .../selftests/kvm/include/x86_64/tdx/tdcall.h | 59 + > > > .../selftests/kvm/include/x86_64/tdx/tdx.h | 65 + > > > .../kvm/include/x86_64/tdx/tdx_util.h | 19 + > > > .../kvm/include/x86_64/tdx/test_util.h | 164 ++ > > > tools/testing/selftests/kvm/lib/kvm_util.c | 101 +- > > > .../selftests/kvm/lib/x86_64/processor.c | 77 +- > > > .../selftests/kvm/lib/x86_64/tdx/td_boot.S | 101 ++ > > > .../selftests/kvm/lib/x86_64/tdx/tdcall.S | 158 ++ > > > .../selftests/kvm/lib/x86_64/tdx/tdx.c | 262 ++++ > > > .../selftests/kvm/lib/x86_64/tdx/tdx_util.c | 558 +++++++ > > > .../selftests/kvm/lib/x86_64/tdx/test_util.c | 101 ++ > > > .../kvm/x86_64/tdx_shared_mem_test.c | 135 ++ > > > .../selftests/kvm/x86_64/tdx_upm_test.c | 469 ++++++ > > > .../selftests/kvm/x86_64/tdx_vm_tests.c | 1319 +++++++++++++++++ > > > 19 files changed, 3693 insertions(+), 35 deletions(-) > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/td_boot.h > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/td_boot_asm.h > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdcall.h > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdx.h > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdx_util.h > > > create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/test_util.h > > > create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/td_boot.S > > > create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdcall.S > > > create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdx.c > > > create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdx_util.c > > > create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/test_util.c > > > create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_shared_mem_test.c > > > create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_upm_test.c > > > create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_vm_tests.c > > > > >