tools/testing/selftests/kvm/x86/xapic_tpr_test.c

Source file repositories/reference/linux-study-clean/tools/testing/selftests/kvm/x86/xapic_tpr_test.c

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/kvm/x86/xapic_tpr_test.c
Extension
.c
Size
5827 bytes
Lines
277
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

switch (get_ucall(vcpu, &uc)) {
		case UCALL_ABORT:
			REPORT_GUEST_ASSERT(uc);
			break;
		case UCALL_DONE:
			test_tpr_check_tpr_cr8_equal(vcpu);
			done = true;
			break;
		case UCALL_SYNC:
			test_tpr_check_tpr_cr8_equal(vcpu);
			test_tpr_set_tpr_for_irq(vcpu, uc.args[1]);
			break;
		default:
			TEST_FAIL("Unknown ucall result 0x%lx", uc.cmd);
			break;
		}
	}
	kvm_vm_free(vm);
}

int main(int argc, char *argv[])
{
	/*
	 * Use separate VMs for the xAPIC and x2APIC tests so that x2APIC can
	 * be fully hidden from the guest.  KVM disallows changing CPUID after
	 * KVM_RUN and AVIC is disabled if _any_ vCPU is allowed to use x2APIC.
	 */
	test_tpr(false);
	test_tpr(true);
}

Annotation

Implementation Notes