KVM: selftests: Add a VM backpointer to 'struct vcpu'
authorSean Christopherson <seanjc@google.com>
Tue, 15 Feb 2022 23:14:29 +0000 (15:14 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 11 Jun 2022 15:46:25 +0000 (11:46 -0400)
Add a backpointer to 'struct vcpu' so that tests can get at the owning
VM when passing around a vCPU object.  Long term, this will be little
more than a nice-to-have feature, but in the short term it is a critical
step toward purging the VM+vcpu_id ioctl mess without introducing even
more churn.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/include/kvm_util_base.h
tools/testing/selftests/kvm/lib/kvm_util.c

index 6e63e7e5775202d7be79cc8e8af6e75b1d6c544c..2e1453cb0511b9aafbe4a4a6164afcc949b4698d 100644 (file)
@@ -47,6 +47,7 @@ struct vcpu {
        struct list_head list;
        uint32_t id;
        int fd;
+       struct kvm_vm *vm;
        struct kvm_run *state;
        struct kvm_dirty_gfn *dirty_gfns;
        uint32_t fetch_index;
index 220e079dc749e26f3592c73963f681ab3e27350b..2d82b5720737aa02a7c31c532b00e83ebedc0c6f 100644 (file)
@@ -1099,6 +1099,7 @@ void vm_vcpu_add(struct kvm_vm *vm, uint32_t vcpuid)
        vcpu = calloc(1, sizeof(*vcpu));
        TEST_ASSERT(vcpu != NULL, "Insufficient Memory");
 
+       vcpu->vm = vm;
        vcpu->id = vcpuid;
        vcpu->fd = __vm_ioctl(vm, KVM_CREATE_VCPU, (void *)(unsigned long)vcpuid);
        TEST_ASSERT(vcpu->fd >= 0, KVM_IOCTL_ERROR(KVM_CREATE_VCPU, vcpu->fd));