Lines Matching refs:vcpu

384 static void check_for_guest_assert(struct kvm_vcpu *vcpu)  in check_for_guest_assert()  argument
388 if (vcpu->run->exit_reason == KVM_EXIT_IO && in check_for_guest_assert()
389 get_ucall(vcpu, &uc) == UCALL_ABORT) { in check_for_guest_assert()
394 static void process_rdmsr(struct kvm_vcpu *vcpu, uint32_t msr_index) in process_rdmsr() argument
396 struct kvm_run *run = vcpu->run; in process_rdmsr()
398 check_for_guest_assert(vcpu); in process_rdmsr()
400 TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_X86_RDMSR); in process_rdmsr()
426 static void process_wrmsr(struct kvm_vcpu *vcpu, uint32_t msr_index) in process_wrmsr() argument
428 struct kvm_run *run = vcpu->run; in process_wrmsr()
430 check_for_guest_assert(vcpu); in process_wrmsr()
432 TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_X86_WRMSR); in process_wrmsr()
454 static void process_ucall_done(struct kvm_vcpu *vcpu) in process_ucall_done() argument
458 check_for_guest_assert(vcpu); in process_ucall_done()
460 TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO); in process_ucall_done()
462 TEST_ASSERT(get_ucall(vcpu, &uc) == UCALL_DONE, in process_ucall_done()
467 static uint64_t process_ucall(struct kvm_vcpu *vcpu) in process_ucall() argument
471 check_for_guest_assert(vcpu); in process_ucall()
473 TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO); in process_ucall()
475 switch (get_ucall(vcpu, &uc)) { in process_ucall()
479 check_for_guest_assert(vcpu); in process_ucall()
482 process_ucall_done(vcpu); in process_ucall()
491 static void run_guest_then_process_rdmsr(struct kvm_vcpu *vcpu, in run_guest_then_process_rdmsr() argument
494 vcpu_run(vcpu); in run_guest_then_process_rdmsr()
495 process_rdmsr(vcpu, msr_index); in run_guest_then_process_rdmsr()
498 static void run_guest_then_process_wrmsr(struct kvm_vcpu *vcpu, in run_guest_then_process_wrmsr() argument
501 vcpu_run(vcpu); in run_guest_then_process_wrmsr()
502 process_wrmsr(vcpu, msr_index); in run_guest_then_process_wrmsr()
505 static uint64_t run_guest_then_process_ucall(struct kvm_vcpu *vcpu) in run_guest_then_process_ucall() argument
507 vcpu_run(vcpu); in run_guest_then_process_ucall()
508 return process_ucall(vcpu); in run_guest_then_process_ucall()
511 static void run_guest_then_process_ucall_done(struct kvm_vcpu *vcpu) in run_guest_then_process_ucall_done() argument
513 vcpu_run(vcpu); in run_guest_then_process_ucall_done()
514 process_ucall_done(vcpu); in run_guest_then_process_ucall_done()
521 struct kvm_vm *vm = vcpu->vm; in KVM_ONE_VCPU_TEST()
537 run_guest_then_process_rdmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
538 run_guest_then_process_wrmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
539 run_guest_then_process_wrmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
541 run_guest_then_process_rdmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
542 run_guest_then_process_wrmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
543 run_guest_then_process_wrmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
545 run_guest_then_process_wrmsr(vcpu, MSR_NON_EXISTENT); in KVM_ONE_VCPU_TEST()
546 run_guest_then_process_rdmsr(vcpu, MSR_NON_EXISTENT); in KVM_ONE_VCPU_TEST()
548 vcpu_run(vcpu); in KVM_ONE_VCPU_TEST()
549 cmd = process_ucall(vcpu); in KVM_ONE_VCPU_TEST()
556 run_guest_then_process_rdmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
557 run_guest_then_process_wrmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
558 run_guest_then_process_wrmsr(vcpu, MSR_IA32_XSS); in KVM_ONE_VCPU_TEST()
560 run_guest_then_process_rdmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
561 run_guest_then_process_wrmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
562 run_guest_then_process_wrmsr(vcpu, MSR_IA32_FLUSH_CMD); in KVM_ONE_VCPU_TEST()
564 run_guest_then_process_wrmsr(vcpu, MSR_NON_EXISTENT); in KVM_ONE_VCPU_TEST()
565 run_guest_then_process_rdmsr(vcpu, MSR_NON_EXISTENT); in KVM_ONE_VCPU_TEST()
568 run_guest_then_process_ucall_done(vcpu); in KVM_ONE_VCPU_TEST()
575 static int handle_ucall(struct kvm_vcpu *vcpu) in handle_ucall() argument
579 switch (get_ucall(vcpu, &uc)) { in handle_ucall()
584 vm_ioctl(vcpu->vm, KVM_X86_SET_MSR_FILTER, &no_filter_deny); in handle_ucall()
634 struct kvm_vm *vm = vcpu->vm; in KVM_ONE_VCPU_TEST()
635 struct kvm_run *run = vcpu->run; in KVM_ONE_VCPU_TEST()
651 vcpu_run(vcpu); in KVM_ONE_VCPU_TEST()
661 if (handle_ucall(vcpu)) in KVM_ONE_VCPU_TEST()
675 struct kvm_vm *vm = vcpu->vm; in KVM_ONE_VCPU_TEST()
686 run_guest_then_process_rdmsr(vcpu, MSR_FS_BASE); in KVM_ONE_VCPU_TEST()
687 TEST_ASSERT(run_guest_then_process_ucall(vcpu) == UCALL_SYNC, in KVM_ONE_VCPU_TEST()
690 run_guest_then_process_rdmsr(vcpu, MSR_GS_BASE); in KVM_ONE_VCPU_TEST()
693 run_guest_then_process_ucall_done(vcpu); in KVM_ONE_VCPU_TEST()
765 struct kvm_vm *vm = vcpu->vm; in KVM_ONE_VCPU_TEST()