lkml.org 
[lkml]   [2022]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[RFC PATCH 090/105] KVM: selftests: Convert sync_regs_test away from VCPU_ID
    From
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    ---
    .../selftests/kvm/s390x/sync_regs_test.c | 37 +++++++++----------
    1 file changed, 18 insertions(+), 19 deletions(-)

    diff --git a/tools/testing/selftests/kvm/s390x/sync_regs_test.c b/tools/testing/selftests/kvm/s390x/sync_regs_test.c
    index caf7b8859a94..bf52cabeaed6 100644
    --- a/tools/testing/selftests/kvm/s390x/sync_regs_test.c
    +++ b/tools/testing/selftests/kvm/s390x/sync_regs_test.c
    @@ -22,8 +22,6 @@
    #include "kvm_util.h"
    #include "diag318_test_handler.h"

    -#define VCPU_ID 5
    -
    static void guest_code(void)
    {
    /*
    @@ -76,6 +74,7 @@ static void compare_sregs(struct kvm_sregs *left, struct kvm_sync_regs *right)

    int main(int argc, char *argv[])
    {
    + struct kvm_vcpu *vcpu;
    struct kvm_vm *vm;
    struct kvm_run *run;
    struct kvm_regs regs;
    @@ -92,43 +91,43 @@ int main(int argc, char *argv[])
    }

    /* Create VM */
    - vm = vm_create_default(VCPU_ID, 0, guest_code);
    + vm = vm_create_with_one_vcpu(&vcpu, guest_code);

    - run = vcpu_state(vm, VCPU_ID);
    + run = vcpu->run;

    /* Request reading invalid register set from VCPU. */
    run->kvm_valid_regs = INVALID_SYNC_FIELD;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv < 0 && errno == EINVAL,
    "Invalid kvm_valid_regs did not cause expected KVM_RUN error: %d\n",
    rv);
    - vcpu_state(vm, VCPU_ID)->kvm_valid_regs = 0;
    + run->kvm_valid_regs = 0;

    run->kvm_valid_regs = INVALID_SYNC_FIELD | TEST_SYNC_FIELDS;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv < 0 && errno == EINVAL,
    "Invalid kvm_valid_regs did not cause expected KVM_RUN error: %d\n",
    rv);
    - vcpu_state(vm, VCPU_ID)->kvm_valid_regs = 0;
    + run->kvm_valid_regs = 0;

    /* Request setting invalid register set into VCPU. */
    run->kvm_dirty_regs = INVALID_SYNC_FIELD;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv < 0 && errno == EINVAL,
    "Invalid kvm_dirty_regs did not cause expected KVM_RUN error: %d\n",
    rv);
    - vcpu_state(vm, VCPU_ID)->kvm_dirty_regs = 0;
    + run->kvm_dirty_regs = 0;

    run->kvm_dirty_regs = INVALID_SYNC_FIELD | TEST_SYNC_FIELDS;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv < 0 && errno == EINVAL,
    "Invalid kvm_dirty_regs did not cause expected KVM_RUN error: %d\n",
    rv);
    - vcpu_state(vm, VCPU_ID)->kvm_dirty_regs = 0;
    + run->kvm_dirty_regs = 0;

    /* Request and verify all valid register sets. */
    run->kvm_valid_regs = TEST_SYNC_FIELDS;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv == 0, "vcpu_run failed: %d\n", rv);
    TEST_ASSERT(run->exit_reason == KVM_EXIT_S390_SIEIC,
    "Unexpected exit reason: %u (%s)\n",
    @@ -141,10 +140,10 @@ int main(int argc, char *argv[])
    run->s390_sieic.icptcode, run->s390_sieic.ipa,
    run->s390_sieic.ipb);

    - vcpu_regs_get(vm, VCPU_ID, &regs);
    + vcpu_regs_get(vm, vcpu->id, &regs);
    compare_regs(&regs, &run->s.regs);

    - vcpu_sregs_get(vm, VCPU_ID, &sregs);
    + vcpu_sregs_get(vm, vcpu->id, &sregs);
    compare_sregs(&sregs, &run->s.regs);

    /* Set and verify various register values */
    @@ -159,7 +158,7 @@ int main(int argc, char *argv[])
    run->kvm_dirty_regs |= KVM_SYNC_DIAG318;
    }

    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv == 0, "vcpu_run failed: %d\n", rv);
    TEST_ASSERT(run->exit_reason == KVM_EXIT_S390_SIEIC,
    "Unexpected exit reason: %u (%s)\n",
    @@ -175,10 +174,10 @@ int main(int argc, char *argv[])
    "diag318 sync regs value incorrect 0x%llx.",
    run->s.regs.diag318);

    - vcpu_regs_get(vm, VCPU_ID, &regs);
    + vcpu_regs_get(vm, vcpu->id, &regs);
    compare_regs(&regs, &run->s.regs);

    - vcpu_sregs_get(vm, VCPU_ID, &sregs);
    + vcpu_sregs_get(vm, vcpu->id, &sregs);
    compare_sregs(&sregs, &run->s.regs);

    /* Clear kvm_dirty_regs bits, verify new s.regs values are
    @@ -188,7 +187,7 @@ int main(int argc, char *argv[])
    run->kvm_dirty_regs = 0;
    run->s.regs.gprs[11] = 0xDEADBEEF;
    run->s.regs.diag318 = 0x4B1D;
    - rv = _vcpu_run(vm, VCPU_ID);
    + rv = _vcpu_run(vm, vcpu->id);
    TEST_ASSERT(rv == 0, "vcpu_run failed: %d\n", rv);
    TEST_ASSERT(run->exit_reason == KVM_EXIT_S390_SIEIC,
    "Unexpected exit reason: %u (%s)\n",
    --
    2.35.1.723.g4982287a31-goog
    \
     
     \ /
      Last update: 2022-03-11 07:01    [W:5.344 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site