2019-09-27 15:57:04

by Vitaly Kuznetsov

[permalink] [raw]
Subject: [PATCH] KVM: selftests: x86: clarify what is reported on KVM_GET_MSRS failure

When KVM_GET_MSRS fail the report looks like

==== Test Assertion Failure ====
lib/x86_64/processor.c:1089: r == nmsrs
pid=28775 tid=28775 - Argument list too long
1 0x000000000040a55f: vcpu_save_state at processor.c:1088 (discriminator 3)
2 0x00000000004010e3: main at state_test.c:171 (discriminator 4)
3 0x00007fb8e69223d4: ?? ??:0
4 0x0000000000401287: _start at ??:?
Unexpected result from KVM_GET_MSRS, r: 36 (failed at 194)

and it's not obvious that '194' here is the failed MSR index and that
it's printed in hex. Change that.

Suggested-by: Sean Christopherson <[email protected]>
Signed-off-by: Vitaly Kuznetsov <[email protected]>
---
tools/testing/selftests/kvm/lib/x86_64/processor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
index c53dbc6bc568..6698cb741e10 100644
--- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
+++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
@@ -1085,7 +1085,7 @@ struct kvm_x86_state *vcpu_save_state(struct kvm_vm *vm, uint32_t vcpuid)
for (i = 0; i < nmsrs; i++)
state->msrs.entries[i].index = list->indices[i];
r = ioctl(vcpu->fd, KVM_GET_MSRS, &state->msrs);
- TEST_ASSERT(r == nmsrs, "Unexpected result from KVM_GET_MSRS, r: %i (failed at %x)",
+ TEST_ASSERT(r == nmsrs, "Unexpected result from KVM_GET_MSRS, r: %i (failed MSR was 0x%x)",
r, r == nmsrs ? -1 : list->indices[r]);

r = ioctl(vcpu->fd, KVM_GET_DEBUGREGS, &state->debugregs);
--
2.20.1


2019-09-27 16:02:41

by Jim Mattson

[permalink] [raw]
Subject: Re: [PATCH] KVM: selftests: x86: clarify what is reported on KVM_GET_MSRS failure

On Fri, Sep 27, 2019 at 8:54 AM Vitaly Kuznetsov <[email protected]> wrote:
>
> When KVM_GET_MSRS fail the report looks like
>
> ==== Test Assertion Failure ====
> lib/x86_64/processor.c:1089: r == nmsrs
> pid=28775 tid=28775 - Argument list too long
> 1 0x000000000040a55f: vcpu_save_state at processor.c:1088 (discriminator 3)
> 2 0x00000000004010e3: main at state_test.c:171 (discriminator 4)
> 3 0x00007fb8e69223d4: ?? ??:0
> 4 0x0000000000401287: _start at ??:?
> Unexpected result from KVM_GET_MSRS, r: 36 (failed at 194)
>
> and it's not obvious that '194' here is the failed MSR index and that
> it's printed in hex. Change that.
>
> Suggested-by: Sean Christopherson <[email protected]>
> Signed-off-by: Vitaly Kuznetsov <[email protected]>
Reviewed-by: Jim Mattson <[email protected]>

2019-09-27 16:07:46

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] KVM: selftests: x86: clarify what is reported on KVM_GET_MSRS failure

On 27/09/19 17:54, Vitaly Kuznetsov wrote:
> When KVM_GET_MSRS fail the report looks like
>
> ==== Test Assertion Failure ====
> lib/x86_64/processor.c:1089: r == nmsrs
> pid=28775 tid=28775 - Argument list too long
> 1 0x000000000040a55f: vcpu_save_state at processor.c:1088 (discriminator 3)
> 2 0x00000000004010e3: main at state_test.c:171 (discriminator 4)
> 3 0x00007fb8e69223d4: ?? ??:0
> 4 0x0000000000401287: _start at ??:?
> Unexpected result from KVM_GET_MSRS, r: 36 (failed at 194)
>
> and it's not obvious that '194' here is the failed MSR index and that
> it's printed in hex. Change that.
>
> Suggested-by: Sean Christopherson <[email protected]>
> Signed-off-by: Vitaly Kuznetsov <[email protected]>
> ---
> tools/testing/selftests/kvm/lib/x86_64/processor.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
> index c53dbc6bc568..6698cb741e10 100644
> --- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
> +++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
> @@ -1085,7 +1085,7 @@ struct kvm_x86_state *vcpu_save_state(struct kvm_vm *vm, uint32_t vcpuid)
> for (i = 0; i < nmsrs; i++)
> state->msrs.entries[i].index = list->indices[i];
> r = ioctl(vcpu->fd, KVM_GET_MSRS, &state->msrs);
> - TEST_ASSERT(r == nmsrs, "Unexpected result from KVM_GET_MSRS, r: %i (failed at %x)",
> + TEST_ASSERT(r == nmsrs, "Unexpected result from KVM_GET_MSRS, r: %i (failed MSR was 0x%x)",
> r, r == nmsrs ? -1 : list->indices[r]);
>
> r = ioctl(vcpu->fd, KVM_GET_DEBUGREGS, &state->debugregs);
>

Queued, thanks.

Paolo