[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221006003409.649993-1-seanjc@google.com>
Date: Thu, 6 Oct 2022 00:34:02 +0000
From: Sean Christopherson <seanjc@...gle.com>
To: Paolo Bonzini <pbonzini@...hat.com>, Shuah Khan <shuah@...nel.org>,
Marc Zyngier <maz@...nel.org>,
Anup Patel <anup@...infault.org>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Christian Borntraeger <borntraeger@...ux.ibm.com>,
Janosch Frank <frankja@...ux.ibm.com>,
Claudio Imbrenda <imbrenda@...ux.ibm.com>,
Nathan Chancellor <nathan@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>
Cc: James Morse <james.morse@....com>,
Alexandru Elisei <alexandru.elisei@....com>,
Suzuki K Poulose <suzuki.poulose@....com>,
Oliver Upton <oliver.upton@...ux.dev>,
Atish Patra <atishp@...shpatra.org>,
David Hildenbrand <david@...hat.com>,
Tom Rix <trix@...hat.com>, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, linux-kselftest@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, kvmarm@...ts.linux.dev,
kvmarm@...ts.cs.columbia.edu, kvm-riscv@...ts.infradead.org,
linux-riscv@...ts.infradead.org, llvm@...ts.linux.dev,
Colton Lewis <coltonlewis@...gle.com>,
Andrew Jones <andrew.jones@...ux.dev>,
Peter Gonda <pgonda@...gle.com>,
Sean Christopherson <seanjc@...gle.com>
Subject: [PATCH v6 0/7] KVM: selftests: Implement ucall "pool" (for SEV)
Rework the ucall infrastructure to use a pool of ucall structs to pass
memory instead of using the guest's stack. For confidential VMs with
encrypted memory, e.g. SEV, the guest's stack "needs" to be private memory
and so can't be used to communicate with the host.
Convert all implementations to the pool as all of the complexity is hidden
in common code, and supporting multiple interfaces adds its own kind of
complexity.
v6:
- Collect tags. [Andrew, Peter]
- Drop an unnecessary NULL check on in_use. [Andrew]
v5:
- Use less convoluted method of writing per-VM "globals". [Oliver]
- Add patch to drop ucall_uninit().
v4: https://lore.kernel.org/all/20220824032115.3563686-1-seanjc@google.com
Peter Gonda (2):
tools: Add atomic_test_and_set_bit()
KVM: selftests: Add ucall pool based implementation
Sean Christopherson (5):
KVM: selftests: Consolidate common code for populating ucall struct
KVM: selftests: Consolidate boilerplate code in get_ucall()
KVM: selftests: Automatically do init_ucall() for non-barebones VMs
KVM: selftests: Make arm64's MMIO ucall multi-VM friendly
KVM: selftest: Drop now-unnecessary ucall_uninit()
tools/arch/x86/include/asm/atomic.h | 7 ++
tools/include/asm-generic/atomic-gcc.h | 12 ++
tools/testing/selftests/kvm/Makefile | 1 +
.../selftests/kvm/aarch64/arch_timer.c | 1 -
.../selftests/kvm/aarch64/debug-exceptions.c | 1 -
.../selftests/kvm/aarch64/hypercalls.c | 1 -
.../testing/selftests/kvm/aarch64/psci_test.c | 1 -
.../testing/selftests/kvm/aarch64/vgic_init.c | 2 -
.../testing/selftests/kvm/aarch64/vgic_irq.c | 1 -
tools/testing/selftests/kvm/dirty_log_test.c | 3 -
.../selftests/kvm/include/kvm_util_base.h | 15 +++
.../selftests/kvm/include/ucall_common.h | 10 +-
.../selftests/kvm/kvm_page_table_test.c | 2 -
.../testing/selftests/kvm/lib/aarch64/ucall.c | 102 +++--------------
tools/testing/selftests/kvm/lib/kvm_util.c | 11 ++
.../selftests/kvm/lib/perf_test_util.c | 3 -
tools/testing/selftests/kvm/lib/riscv/ucall.c | 42 +------
tools/testing/selftests/kvm/lib/s390x/ucall.c | 39 +------
.../testing/selftests/kvm/lib/ucall_common.c | 103 ++++++++++++++++++
.../testing/selftests/kvm/lib/x86_64/ucall.c | 39 +------
.../testing/selftests/kvm/memslot_perf_test.c | 1 -
tools/testing/selftests/kvm/rseq_test.c | 1 -
tools/testing/selftests/kvm/steal_time.c | 1 -
.../kvm/system_counter_offset_test.c | 1 -
24 files changed, 190 insertions(+), 210 deletions(-)
create mode 100644 tools/testing/selftests/kvm/lib/ucall_common.c
base-commit: e18d6152ff0f41b7f01f9817372022df04e0d354
--
2.38.0.rc1.362.ged0d419d3c-goog
Powered by blists - more mailing lists