/linux-6.3-rc2/arch/x86/kvm/svm/ |
A D | svm.h | 205 struct vmcb *vmcb; member 408 struct vmcb *vmcb = svm->vmcb01.ptr; in set_dr_intercepts() local 435 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_dr_intercepts() local 450 struct vmcb *vmcb = svm->vmcb01.ptr; in set_exception_intercept() local 460 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_exception_intercept() local 470 struct vmcb *vmcb = svm->vmcb01.ptr; in svm_set_intercept() local 479 struct vmcb *vmcb = svm->vmcb01.ptr; in svm_clr_intercept() local 509 struct vmcb *vmcb = get_vgif_vmcb(svm); in enable_gif() local 511 if (vmcb) in enable_gif() 519 struct vmcb *vmcb = get_vgif_vmcb(svm); in disable_gif() local [all …]
|
A D | svm_onhyperv.h | 18 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) in svm_hv_init_vmcb() argument 20 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; in svm_hv_init_vmcb() 22 BUILD_BUG_ON(sizeof(vmcb->control.hv_enlightenments) != in svm_hv_init_vmcb() 23 sizeof(vmcb->control.reserved_sw)); in svm_hv_init_vmcb() 64 struct vmcb *vmcb = to_svm(vcpu)->vmcb; in svm_hv_vmcb_dirty_nested_enlightenments() local 65 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; in svm_hv_vmcb_dirty_nested_enlightenments() 68 vmcb_mark_dirty(vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS); in svm_hv_vmcb_dirty_nested_enlightenments() 71 static inline void svm_hv_update_vp_id(struct vmcb *vmcb, struct kvm_vcpu *vcpu) in svm_hv_update_vp_id() argument 78 vmcb_mark_dirty(vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS); in svm_hv_update_vp_id() 83 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) in svm_hv_init_vmcb() argument [all …]
|
A D | svm.c | 912 void svm_copy_lbrs(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_lbrs() 965 struct vmcb *vmcb = in svm_get_lbr_msr() local 1186 struct vmcb *vmcb = svm->vmcb01.ptr; in init_vmcb() local 1432 static void svm_clear_current_vmcb(struct vmcb *vmcb) in svm_clear_current_vmcb() argument 1550 struct vmcb *vmcb = to_svm(vcpu)->vmcb; in svm_get_if_flag() local 1923 struct vmcb *vmcb = svm->vmcb; in svm_set_dr6() local 2018 svm->vmcb->save.cs.base + svm->vmcb->save.rip; in db_interception() 2032 kvm_run->debug.arch.pc = svm->vmcb->save.cs.base + svm->vmcb->save.rip; in bp_interception() 3587 struct vmcb *vmcb = svm->vmcb; in svm_nmi_blocked() local 3637 struct vmcb *vmcb = svm->vmcb; in svm_interrupt_blocked() local [all …]
|
A D | nested.c | 40 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_npf_exit() local 48 vmcb->control.exit_code_hi = 0; in nested_svm_inject_npf_exit() 133 c = &svm->vmcb->control; in recalc_intercepts() 444 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12() 823 struct vmcb *vmcb12; in nested_svm_vmrun() 933 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_vmloadsave_state() 954 struct vmcb *vmcb12; in nested_svm_vmexit() 1326 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_exception_vmexit() local 1532 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_get_nested_state() 1592 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_set_nested_state() [all …]
|
A D | avic.c | 68 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb() local 73 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; in avic_activate_vmcb() 83 vmcb->control.int_ctl |= X2APIC_MODE_MASK; in avic_activate_vmcb() 103 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb() local 225 void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb) in avic_init_vmcb() argument 475 u32 icrl = svm->vmcb->control.exit_info_1; in avic_incomplete_ipi_interception() 476 u32 id = svm->vmcb->control.exit_info_2 >> 32; in avic_incomplete_ipi_interception() 675 u32 offset = svm->vmcb->control.exit_info_1 & in avic_unaccelerated_access_interception() 677 u32 vector = svm->vmcb->control.exit_info_2 & in avic_unaccelerated_access_interception() 1050 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_refresh_virtual_apic_mode() local [all …]
|
A D | hyperv.c | 13 svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 14 svm->vmcb->control.exit_code_hi = 0; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 15 svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 16 svm->vmcb->control.exit_info_2 = 0; in svm_hv_inject_synthetic_vmexit_post_tlb_flush()
|
A D | svm_onhyperv.c | 30 hve = &to_svm(vcpu)->vmcb->control.hv_enlightenments; in svm_hv_enable_l2_tlb_flush() 36 vmcb_mark_dirty(to_svm(vcpu)->vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS); in svm_hv_enable_l2_tlb_flush()
|
A D | sev.c | 579 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa() 1736 dst_svm->vmcb->control.ghcb_gpa = src_svm->vmcb->control.ghcb_gpa; in sev_migrate_from() 1737 dst_svm->vmcb->control.vmsa_pa = src_svm->vmcb->control.vmsa_pa; in sev_migrate_from() 1742 src_svm->vmcb->control.vmsa_pa = INVALID_PAGE; in sev_migrate_from() 2616 if (sd->sev_vmcbs[asid] == svm->vmcb && in pre_sev_run() 2620 sd->sev_vmcbs[asid] = svm->vmcb; in pre_sev_run() 2622 vmcb_mark_dirty(svm->vmcb, VMCB_ASID); in pre_sev_run() 2714 svm->vmcb->control.ghcb_gpa &= ~(mask << pos); in set_ghcb_msr_bits() 2725 svm->vmcb->control.ghcb_gpa = value; in set_ghcb_msr() 2926 if (svm->vmcb->control.exit_info_2 > INT_MAX) in sev_es_string_io() [all …]
|
/linux-6.3-rc2/tools/testing/selftests/kvm/x86_64/ |
A D | hyperv_svm_test.c | 76 struct vmcb *vmcb = svm->vmcb; in guest_code() local 99 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 102 vmcb->save.rip += 3; in guest_code() 107 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 109 vmcb->save.rip += 2; /* rdmsr */ in guest_code() 113 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 121 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 128 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 137 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 142 run_guest(vmcb, svm->vmcb_gpa); in guest_code() [all …]
|
A D | svm_nested_soft_inject_test.c | 85 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 103 vmcb->control.next_rip = vmcb->save.rip; in l1_guest_code() 106 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 108 vmcb->control.exit_code, in l1_guest_code() 109 vmcb->control.exit_info_1, vmcb->control.exit_info_2); in l1_guest_code() 125 vmcb->save.rip += 3; in l1_guest_code() 128 vmcb->save.idtr.base = idt_alt; in l1_guest_code() 133 vmcb->control.next_rip = vmcb->save.rip + 2; in l1_guest_code() 135 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 137 vmcb->control.exit_code, in l1_guest_code() [all …]
|
A D | svm_int_ctl_test.c | 62 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 71 vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; in l1_guest_code() 74 vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); in l1_guest_code() 77 vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT); in l1_guest_code() 78 vmcb->control.int_vector = VINTR_IRQ_NUMBER; in l1_guest_code() 80 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 81 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
|
A D | svm_nested_shutdown_test.c | 24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 29 vmcb->control.intercept &= ~(BIT(INTERCEPT_SHUTDOWN)); in l1_guest_code() 36 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
|
A D | svm_vmcall_test.c | 24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 30 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 32 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
|
A D | state_test.c | 38 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code() local 46 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 47 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code() 49 vmcb->save.rip += 3; in svm_l1_guest_code() 50 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 51 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code()
|
A D | triple_fault_event_test.c | 45 struct vmcb *vmcb = svm->vmcb; in l1_guest_code_svm() local 51 vmcb->control.intercept &= ~(BIT(INTERCEPT_SHUTDOWN)); in l1_guest_code_svm() 53 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code_svm()
|
A D | nested_exceptions_test.c | 79 struct vmcb *vmcb = svm->vmcb; in svm_run_l2() local 80 struct vmcb_control_area *ctrl = &vmcb->control; in svm_run_l2() 82 vmcb->save.rip = (u64)l2_code; in svm_run_l2() 83 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2() 94 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code() 98 svm->vmcb->save.idtr.limit = 0; in l1_svm_code()
|
A D | smm_test.c | 103 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code() 104 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
|
/linux-6.3-rc2/tools/testing/selftests/kvm/lib/x86_64/ |
A D | svm.c | 37 svm->vmcb = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm() 38 svm->vmcb_hva = addr_gva2hva(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm() 39 svm->vmcb_gpa = addr_gva2gpa(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm() 65 struct vmcb *vmcb = svm->vmcb; in generic_svm_setup() local 67 struct vmcb_save_area *save = &vmcb->save; in generic_svm_setup() 68 struct vmcb_control_area *ctrl = &vmcb->control; in generic_svm_setup() 79 memset(vmcb, 0, sizeof(*vmcb)); in generic_svm_setup() 103 vmcb->save.rip = (u64)guest_rip; in generic_svm_setup() 104 vmcb->save.rsp = (u64)guest_rsp; in generic_svm_setup() 135 void run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa) in run_guest() argument [all …]
|
/linux-6.3-rc2/tools/testing/selftests/kvm/include/x86_64/ |
A D | svm_util.h | 20 struct vmcb *vmcb; /* gva */ member 61 void run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa);
|
A D | svm.h | 240 struct __attribute__ ((__packed__)) vmcb { struct
|
/linux-6.3-rc2/arch/x86/kvm/ |
A D | trace.h | 601 TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, 604 TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, tdp_enabled, 609 __field( __u64, vmcb ) 620 __entry->vmcb = vmcb; 633 __entry->vmcb,
|
/linux-6.3-rc2/arch/x86/include/asm/ |
A D | svm.h | 556 struct vmcb { struct
|
/linux-6.3-rc2/Documentation/virt/kvm/ |
A D | locking.rst | 249 - tsc offset in vmcb
|