| /linux/arch/x86/kvm/svm/ |
| H A D | svm_onhyperv.h | 20 struct hv_vmcb_enlightenments *hve = &to_svm(vcpu)->vmcb->control.hv_enlightenments; in svm_hv_is_enlightened_tlb_enabled() 26 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) in svm_hv_init_vmcb() argument 28 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; in svm_hv_init_vmcb() 30 BUILD_BUG_ON(sizeof(vmcb->control.hv_enlightenments) != in svm_hv_init_vmcb() 31 sizeof(vmcb->control.reserved_sw)); in svm_hv_init_vmcb() 44 struct vmcb *vmcb = to_svm(vcpu)->vmcb; in svm_hv_vmcb_dirty_nested_enlightenments() local 45 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; in svm_hv_vmcb_dirty_nested_enlightenments() 48 vmcb_mark_dirty(vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS); in svm_hv_vmcb_dirty_nested_enlightenments() 51 static inline void svm_hv_update_vp_id(struct vmcb *vmcb, struct kvm_vcpu *vcpu) in svm_hv_update_vp_id() argument 53 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; in svm_hv_update_vp_id() [all …]
|
| H A D | svm.c | 267 svm->vmcb->save.efer = efer | EFER_SVME; in svm_set_efer() 268 vmcb_mark_dirty(svm->vmcb, VMCB_CR); in svm_set_efer() 277 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) in svm_get_interrupt_shadow() 287 svm->vmcb->control.int_state &= ~SVM_INTERRUPT_SHADOW_MASK; in svm_set_interrupt_shadow() 289 svm->vmcb->control.int_state |= SVM_INTERRUPT_SHADOW_MASK; in svm_set_interrupt_shadow() 307 if (nrips && svm->vmcb->control.next_rip != 0) { in __svm_skip_emulated_instruction() 309 svm->next_rip = svm->vmcb->control.next_rip; in __svm_skip_emulated_instruction() 314 old_rflags = svm->vmcb->save.rflags; in __svm_skip_emulated_instruction() 320 svm->vmcb->save.rflags = old_rflags; in __svm_skip_emulated_instruction() 371 svm->soft_int_csbase = svm->vmcb->save.cs.base; in svm_update_soft_interrupt_rip() [all …]
|
| H A D | svm.h | 140 struct vmcb *ptr; 275 struct vmcb *vmcb; member 372 struct vmcb *save_area; 376 struct vmcb **sev_vmcbs; 445 static inline void vmcb_mark_all_dirty(struct vmcb *vmcb) in vmcb_mark_all_dirty() argument 447 vmcb->control.clean = 0; in vmcb_mark_all_dirty() 450 static inline void vmcb_mark_all_clean(struct vmcb *vmcb) in vmcb_mark_all_clean() argument 452 vmcb->control.clean = VMCB_ALL_CLEAN_MASK in vmcb_mark_all_clean() 456 static inline void vmcb_mark_dirty(struct vmcb *vmcb, int bit) in vmcb_mark_dirty() argument 458 vmcb->control.clean &= ~(1 << bit); in vmcb_mark_dirty() [all …]
|
| H A D | avic.c | 199 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb() local 202 vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); in avic_activate_vmcb() 203 vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; in avic_activate_vmcb() 204 vmcb->control.avic_physical_id |= avic_get_max_physical_id(vcpu); in avic_activate_vmcb() 205 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; in avic_activate_vmcb() 217 vmcb->control.int_ctl |= X2APIC_MODE_MASK; in avic_activate_vmcb() 235 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb() local 237 vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); in avic_deactivate_vmcb() 238 vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; in avic_deactivate_vmcb() 376 void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb) in avic_init_vmcb() argument [all …]
|
| H A D | nested.c | 40 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_npf_exit() local 42 if (vmcb->control.exit_code != SVM_EXIT_NPF) { in nested_svm_inject_npf_exit() 47 vmcb->control.exit_code = SVM_EXIT_NPF; in nested_svm_inject_npf_exit() 48 vmcb->control.exit_info_1 = (1ULL << 32); in nested_svm_inject_npf_exit() 49 vmcb->control.exit_info_2 = fault->address; in nested_svm_inject_npf_exit() 52 vmcb->control.exit_info_1 &= ~0xffffffffULL; in nested_svm_inject_npf_exit() 53 vmcb->control.exit_info_1 |= fault->error_code; in nested_svm_inject_npf_exit() 128 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_recalc_intercepts() 129 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_recalc_intercepts() 132 if (WARN_ON_ONCE(svm->vmcb != vmcb02)) in nested_vmcb02_recalc_intercepts() [all …]
|
| H A D | svm_onhyperv.c | 26 hve = &to_svm(vcpu)->vmcb->control.hv_enlightenments; in svm_hv_enable_l2_tlb_flush() 32 vmcb_mark_dirty(to_svm(vcpu)->vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS); in svm_hv_enable_l2_tlb_flush()
|
| /linux/tools/testing/selftests/kvm/x86/ |
| H A D | nested_invalid_cr3_test.c | 30 save_cr3 = svm->vmcb->save.cr3; in l1_svm_code() 31 svm->vmcb->save.cr3 = -1ull; in l1_svm_code() 32 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code() 33 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_ERR); in l1_svm_code() 36 svm->vmcb->save.cr3 = save_cr3; in l1_svm_code() 37 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code() 38 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_svm_code()
|
| H A D | nested_exceptions_test.c | 77 struct vmcb *vmcb = svm->vmcb; in svm_run_l2() local 78 struct vmcb_control_area *ctrl = &vmcb->control; in svm_run_l2() 80 vmcb->save.rip = (u64)l2_code; in svm_run_l2() 81 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2() 93 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code() 97 svm->vmcb->save.idtr.limit = 0; in l1_svm_code()
|
| H A D | state_test.c | 39 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code() 46 vmcb->control.int_ctl |= (V_GIF_ENABLE_MASK | V_GIF_MASK); in svm_l1_guest_code() 49 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 50 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code() 52 vmcb->save.rip += 3; in svm_l1_guest_code() 53 run_guest(vmcb, svm->vmcb_gpa); 54 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in vmx_l2_guest_code() 231 struct vmcb *vmc in main() 37 struct vmcb *vmcb = svm->vmcb; svm_l1_guest_code() local [all...] |
| H A D | aperfmperf_test.c | 68 struct vmcb *vmcb = svm->vmcb; in l1_svm_code() local 71 run_guest(vmcb, svm->vmcb_gpa); in l1_svm_code()
|
| H A D | nested_tsc_adjust_test.c | 111 svm->vmcb->control.tsc_offset = TSC_OFFSET_VALUE; in l1_guest_code() 112 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_guest_code() 113 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
|
| H A D | smm_test.c | 100 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code() 101 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
|
| H A D | nested_tsc_scaling_test.c | 97 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code() 98 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_svm_code()
|
| H A D | nested_close_kvm_test.c | 56 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code()
|
| /linux/Documentation/virt/kvm/ |
| H A D | locking.rst | 267 - tsc offset in vmcb
|