diff mbox series

KVM: selftests: Use TAP in the steal_time test

Message ID 20231019095900.450467-1-thuth@redhat.com (mailing list archive)
State New, archived
Headers show
Series KVM: selftests: Use TAP in the steal_time test | expand

Commit Message

Thomas Huth Oct. 19, 2023, 9:59 a.m. UTC
For easier use of the tests in automation and for having some
status information for the user while the test is running, let's
provide some TAP output in this test.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 NB: This patch does not use the interface from kselftest_harness.h
     since it is not very suitable for the for-loop in this patch.

 tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
 1 file changed, 23 insertions(+), 23 deletions(-)

Comments

Andrew Jones Oct. 19, 2023, 1:13 p.m. UTC | #1
On Thu, Oct 19, 2023 at 11:59:00AM +0200, Thomas Huth wrote:
> For easier use of the tests in automation and for having some
> status information for the user while the test is running, let's
> provide some TAP output in this test.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  NB: This patch does not use the interface from kselftest_harness.h
>      since it is not very suitable for the for-loop in this patch.
> 
>  tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
>

Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Thomas Huth Dec. 11, 2023, 9:39 a.m. UTC | #2
On 19/10/2023 15.13, Andrew Jones wrote:
> On Thu, Oct 19, 2023 at 11:59:00AM +0200, Thomas Huth wrote:
>> For easier use of the tests in automation and for having some
>> status information for the user while the test is running, let's
>> provide some TAP output in this test.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   NB: This patch does not use the interface from kselftest_harness.h
>>       since it is not very suitable for the for-loop in this patch.
>>
>>   tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
>>   1 file changed, 23 insertions(+), 23 deletions(-)
>>
> 
> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>

Thanks Andrew!

Paolo, if there are no other concerns, could you maybe pick it up for kvm/next ?

  Thanks,
   Thomas
Thomas Huth March 15, 2024, 7:03 a.m. UTC | #3
On 11/12/2023 10.39, Thomas Huth wrote:
> On 19/10/2023 15.13, Andrew Jones wrote:
>> On Thu, Oct 19, 2023 at 11:59:00AM +0200, Thomas Huth wrote:
>>> For easier use of the tests in automation and for having some
>>> status information for the user while the test is running, let's
>>> provide some TAP output in this test.
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>   NB: This patch does not use the interface from kselftest_harness.h
>>>       since it is not very suitable for the for-loop in this patch.
>>>
>>>   tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
>>>   1 file changed, 23 insertions(+), 23 deletions(-)
>>>
>>
>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
> 
> Thanks Andrew!
> 
> Paolo, if there are no other concerns, could you maybe pick it up for 
> kvm/next ?

Ping?

  Thomas
Zhao Liu March 26, 2024, 8:30 a.m. UTC | #4
On Thu, Oct 19, 2023 at 11:59:00AM +0200, Thomas Huth wrote:
> Date:   Thu, 19 Oct 2023 11:59:00 +0200
> From: Thomas Huth <thuth@redhat.com>
> Subject: [PATCH] KVM: selftests: Use TAP in the steal_time test
> 
> For easier use of the tests in automation and for having some
> status information for the user while the test is running, let's
> provide some TAP output in this test.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  NB: This patch does not use the interface from kselftest_harness.h
>      since it is not very suitable for the for-loop in this patch.
> 
>  tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
>

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Muhammad Usama Anjum March 26, 2024, 9:24 a.m. UTC | #5
On 10/19/23 2:59 PM, Thomas Huth wrote:
> For easier use of the tests in automation and for having some
> status information for the user while the test is running, let's
> provide some TAP output in this test.
LGTM. I was thinking why kselftest.h hasn't been included. I found out that
test_util.h includes kselftest.h.

> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

> ---
>  NB: This patch does not use the interface from kselftest_harness.h
>      since it is not very suitable for the for-loop in this patch.
> 
>  tools/testing/selftests/kvm/steal_time.c | 46 ++++++++++++------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c
> index 171adfb2a6cb..aa6149eb9ea1 100644
> --- a/tools/testing/selftests/kvm/steal_time.c
> +++ b/tools/testing/selftests/kvm/steal_time.c
> @@ -81,20 +81,18 @@ static void steal_time_init(struct kvm_vcpu *vcpu, uint32_t i)
>  static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)
>  {
>  	struct kvm_steal_time *st = addr_gva2hva(vm, (ulong)st_gva[vcpu_idx]);
> -	int i;
>  
> -	pr_info("VCPU%d:\n", vcpu_idx);
> -	pr_info("    steal:     %lld\n", st->steal);
> -	pr_info("    version:   %d\n", st->version);
> -	pr_info("    flags:     %d\n", st->flags);
> -	pr_info("    preempted: %d\n", st->preempted);
> -	pr_info("    u8_pad:    ");
> -	for (i = 0; i < 3; ++i)
> -		pr_info("%d", st->u8_pad[i]);
> -	pr_info("\n    pad:       ");
> -	for (i = 0; i < 11; ++i)
> -		pr_info("%d", st->pad[i]);
> -	pr_info("\n");
> +	ksft_print_msg("VCPU%d:\n", vcpu_idx);
> +	ksft_print_msg("    steal:     %lld\n", st->steal);
> +	ksft_print_msg("    version:   %d\n", st->version);
> +	ksft_print_msg("    flags:     %d\n", st->flags);
> +	ksft_print_msg("    preempted: %d\n", st->preempted);
> +	ksft_print_msg("    u8_pad:    %d %d %d\n",
> +			st->u8_pad[0], st->u8_pad[1], st->u8_pad[2]);
> +	ksft_print_msg("    pad:       %d %d %d %d %d %d %d %d %d %d %d\n",
> +			st->pad[0], st->pad[1], st->pad[2], st->pad[3],
> +			st->pad[4], st->pad[5], st->pad[6], st->pad[7],
> +			st->pad[8], st->pad[9], st->pad[10]);
>  }
>  
>  #elif defined(__aarch64__)
> @@ -197,10 +195,10 @@ static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)
>  {
>  	struct st_time *st = addr_gva2hva(vm, (ulong)st_gva[vcpu_idx]);
>  
> -	pr_info("VCPU%d:\n", vcpu_idx);
> -	pr_info("    rev:     %d\n", st->rev);
> -	pr_info("    attr:    %d\n", st->attr);
> -	pr_info("    st_time: %ld\n", st->st_time);
> +	ksft_print_msg("VCPU%d:\n", vcpu_idx);
> +	ksft_print_msg("    rev:     %d\n", st->rev);
> +	ksft_print_msg("    attr:    %d\n", st->attr);
> +	ksft_print_msg("    st_time: %ld\n", st->st_time);
>  }
>  
>  #endif
> @@ -267,7 +265,9 @@ int main(int ac, char **av)
>  	vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, gpages, 0);
>  	virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, gpages);
>  
> +	ksft_print_header();
>  	TEST_REQUIRE(is_steal_time_supported(vcpus[0]));
> +	ksft_set_plan(NR_VCPUS);
>  
>  	/* Run test on each VCPU */
>  	for (i = 0; i < NR_VCPUS; ++i) {
> @@ -308,14 +308,14 @@ int main(int ac, char **av)
>  			    run_delay, stolen_time);
>  
>  		if (verbose) {
> -			pr_info("VCPU%d: total-stolen-time=%ld test-stolen-time=%ld", i,
> -				guest_stolen_time[i], stolen_time);
> -			if (stolen_time == run_delay)
> -				pr_info(" (BONUS: guest test-stolen-time even exactly matches test-run_delay)");
> -			pr_info("\n");
> +			ksft_print_msg("VCPU%d: total-stolen-time=%ld test-stolen-time=%ld%s\n",
> +				       i, guest_stolen_time[i], stolen_time,
> +				       stolen_time == run_delay ?
> +				       " (BONUS: guest test-stolen-time even exactly matches test-run_delay)" : "");
>  			steal_time_dump(vm, i);
>  		}
> +		ksft_test_result_pass("vcpu%d\n", i);
>  	}
>  
> -	return 0;
> +	ksft_finished();        /* Print results and exit() accordingly */
>  }
Sean Christopherson April 10, 2024, 12:19 a.m. UTC | #6
On Thu, 19 Oct 2023 11:59:00 +0200, Thomas Huth wrote:
> For easier use of the tests in automation and for having some
> status information for the user while the test is running, let's
> provide some TAP output in this test.

Applied to kvm-x86 selftests, though I was mildly tempted to see how many
reviews it could accumulate before someone picked it up. ;-)  Thanks!

[1/1] KVM: selftests: Use TAP in the steal_time test
      https://github.com/kvm-x86/linux/commit/9f92c06e1840

--
https://github.com/kvm-x86/linux/tree/next
diff mbox series

Patch

diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c
index 171adfb2a6cb..aa6149eb9ea1 100644
--- a/tools/testing/selftests/kvm/steal_time.c
+++ b/tools/testing/selftests/kvm/steal_time.c
@@ -81,20 +81,18 @@  static void steal_time_init(struct kvm_vcpu *vcpu, uint32_t i)
 static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)
 {
 	struct kvm_steal_time *st = addr_gva2hva(vm, (ulong)st_gva[vcpu_idx]);
-	int i;
 
-	pr_info("VCPU%d:\n", vcpu_idx);
-	pr_info("    steal:     %lld\n", st->steal);
-	pr_info("    version:   %d\n", st->version);
-	pr_info("    flags:     %d\n", st->flags);
-	pr_info("    preempted: %d\n", st->preempted);
-	pr_info("    u8_pad:    ");
-	for (i = 0; i < 3; ++i)
-		pr_info("%d", st->u8_pad[i]);
-	pr_info("\n    pad:       ");
-	for (i = 0; i < 11; ++i)
-		pr_info("%d", st->pad[i]);
-	pr_info("\n");
+	ksft_print_msg("VCPU%d:\n", vcpu_idx);
+	ksft_print_msg("    steal:     %lld\n", st->steal);
+	ksft_print_msg("    version:   %d\n", st->version);
+	ksft_print_msg("    flags:     %d\n", st->flags);
+	ksft_print_msg("    preempted: %d\n", st->preempted);
+	ksft_print_msg("    u8_pad:    %d %d %d\n",
+			st->u8_pad[0], st->u8_pad[1], st->u8_pad[2]);
+	ksft_print_msg("    pad:       %d %d %d %d %d %d %d %d %d %d %d\n",
+			st->pad[0], st->pad[1], st->pad[2], st->pad[3],
+			st->pad[4], st->pad[5], st->pad[6], st->pad[7],
+			st->pad[8], st->pad[9], st->pad[10]);
 }
 
 #elif defined(__aarch64__)
@@ -197,10 +195,10 @@  static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)
 {
 	struct st_time *st = addr_gva2hva(vm, (ulong)st_gva[vcpu_idx]);
 
-	pr_info("VCPU%d:\n", vcpu_idx);
-	pr_info("    rev:     %d\n", st->rev);
-	pr_info("    attr:    %d\n", st->attr);
-	pr_info("    st_time: %ld\n", st->st_time);
+	ksft_print_msg("VCPU%d:\n", vcpu_idx);
+	ksft_print_msg("    rev:     %d\n", st->rev);
+	ksft_print_msg("    attr:    %d\n", st->attr);
+	ksft_print_msg("    st_time: %ld\n", st->st_time);
 }
 
 #endif
@@ -267,7 +265,9 @@  int main(int ac, char **av)
 	vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, gpages, 0);
 	virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, gpages);
 
+	ksft_print_header();
 	TEST_REQUIRE(is_steal_time_supported(vcpus[0]));
+	ksft_set_plan(NR_VCPUS);
 
 	/* Run test on each VCPU */
 	for (i = 0; i < NR_VCPUS; ++i) {
@@ -308,14 +308,14 @@  int main(int ac, char **av)
 			    run_delay, stolen_time);
 
 		if (verbose) {
-			pr_info("VCPU%d: total-stolen-time=%ld test-stolen-time=%ld", i,
-				guest_stolen_time[i], stolen_time);
-			if (stolen_time == run_delay)
-				pr_info(" (BONUS: guest test-stolen-time even exactly matches test-run_delay)");
-			pr_info("\n");
+			ksft_print_msg("VCPU%d: total-stolen-time=%ld test-stolen-time=%ld%s\n",
+				       i, guest_stolen_time[i], stolen_time,
+				       stolen_time == run_delay ?
+				       " (BONUS: guest test-stolen-time even exactly matches test-run_delay)" : "");
 			steal_time_dump(vm, i);
 		}
+		ksft_test_result_pass("vcpu%d\n", i);
 	}
 
-	return 0;
+	ksft_finished();        /* Print results and exit() accordingly */
 }