lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 5 Jun 2024 20:15:31 +0000
From: "Verma, Vishal L" <vishal.l.verma@...el.com>
To: "sagis@...gle.com" <sagis@...gle.com>
CC: "Aktas, Erdem" <erdemaktas@...gle.com>, "vipinsh@...gle.com"
	<vipinsh@...gle.com>, "shuah@...nel.org" <shuah@...nel.org>, "Xu, Haibo1"
	<haibo1.xu@...el.com>, "kvm@...r.kernel.org" <kvm@...r.kernel.org>, "Afranji,
 Ryan" <afranji@...gle.com>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "seanjc@...gle.com" <seanjc@...gle.com>,
	"pbonzini@...hat.com" <pbonzini@...hat.com>, "linux-mm@...ck.org"
	<linux-mm@...ck.org>, "ackerleytng@...gle.com" <ackerleytng@...gle.com>,
	"Yamahata, Isaku" <isaku.yamahata@...el.com>, "dmatlack@...gle.com"
	<dmatlack@...gle.com>, "jmattson@...gle.com" <jmattson@...gle.com>,
	"Annapurve, Vishal" <vannapurve@...gle.com>, "runanwang@...gle.com"
	<runanwang@...gle.com>, "Edgecombe, Rick P" <rick.p.edgecombe@...el.com>,
	"linux-kselftest@...r.kernel.org" <linux-kselftest@...r.kernel.org>,
	"chao.p.peng@...ux.intel.com" <chao.p.peng@...ux.intel.com>,
	"pgonda@...gle.com" <pgonda@...gle.com>
Subject: Re: [RFC PATCH v5 00/29] TDX KVM selftests

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@...el.com> 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@intel.com/
> > > 
> > > 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@intel.com/
> 
> 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@google.com/
> > > 
> > > 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@google.com/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@...gle.com>
> > > + Zhenzhong Duan <zhenzhong.duan@...el.com>
> > > + Peter Gonda <pgonda@...gle.com>
> > > + Andrew Jones <drjones@...hat.com>
> > > + Maxim Levitsky <mlevitsk@...hat.com>
> > > + Xiaoyao Li <xiaoyao.li@...el.com>
> > > + David Matlack <dmatlack@...gle.com>
> > > + Marc Orr <marcorr@...gle.com>
> > > + Isaku Yamahata <isaku.yamahata@...il.com>
> > > + Maciej S. Szmigiero <maciej.szmigiero@...cle.com>
> > > 
> > > Links to earlier patch series
> > > 
> > > + RFC v1: https://lore.kernel.org/lkml/20210726183816.1343022-1-erdemaktas@google.com/T/#u
> > > + RFC v2: https://lore.kernel.org/lkml/20220830222000.709028-1-sagis@google.com/T/#u
> > > + RFC v3: https://lore.kernel.org/lkml/20230121001542.2472357-1-ackerleytng@google.com/T/#u
> > > + RFC v4: https://lore.kernel.org/lkml/20230725220132.2310657-1-afranji@google.com/
> > > 
> > > *** 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
> > > 
> > 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ