Commit 9f92c06e authored by Thomas Huth's avatar Thomas Huth Committed by Sean Christopherson
Browse files

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: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
Reviewed-by: default avatarZhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20231019095900.450467-1-thuth@redhat.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 0cba6442
Loading
Loading
Loading
Loading
+24 −23
Original line number Diff line number Diff line
@@ -83,20 +83,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__)
@@ -199,10 +197,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);
}

#elif defined(__riscv)
@@ -366,7 +364,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) {
@@ -407,14 +407,15 @@ 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;
	/* Print results and exit() accordingly */
	ksft_finished();
}