Home
last modified time | relevance | path

Searched refs:vmcb (Results 1 – 14 of 14) sorted by relevance

/linux/arch/x86/kvm/svm/
H A Dsvm_onhyperv.h20 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 Dsvm.h136 struct vmcb *ptr;
255 struct vmcb *vmcb; member
351 struct vmcb *save_area;
355 struct vmcb **sev_vmcbs;
402 static inline void vmcb_mark_all_dirty(struct vmcb *vmcb) in vmcb_mark_all_dirty() argument
404 vmcb->control.clean = 0; in vmcb_mark_all_dirty()
407 static inline void vmcb_mark_all_clean(struct vmcb *vmcb) in vmcb_mark_all_clean() argument
409 vmcb->control.clean = VMCB_ALL_CLEAN_MASK in vmcb_mark_all_clean()
413 static inline void vmcb_mark_dirty(struct vmcb *vmcb, int bit) in vmcb_mark_dirty() argument
415 vmcb->control.clean &= ~(1 << bit); in vmcb_mark_dirty()
[all …]
H A Dsvm.c249 svm->vmcb->save.efer = efer | EFER_SVME; in svm_set_efer()
250 vmcb_mark_dirty(svm->vmcb, VMCB_CR); in svm_set_efer()
259 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) in svm_get_interrupt_shadow()
269 svm->vmcb->control.int_state &= ~SVM_INTERRUPT_SHADOW_MASK; in svm_set_interrupt_shadow()
271 svm->vmcb->control.int_state |= SVM_INTERRUPT_SHADOW_MASK; in svm_set_interrupt_shadow()
289 if (nrips && svm->vmcb->control.next_rip != 0) { in __svm_skip_emulated_instruction()
291 svm->next_rip = svm->vmcb->control.next_rip; in __svm_skip_emulated_instruction()
296 old_rflags = svm->vmcb->save.rflags; in __svm_skip_emulated_instruction()
302 svm->vmcb->save.rflags = old_rflags; in __svm_skip_emulated_instruction()
353 svm->soft_int_csbase = svm->vmcb->save.cs.base; in svm_update_soft_interrupt_rip()
[all …]
H A Dnested.c40 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()
131 vmcb_mark_dirty(svm->vmcb, VMCB_INTERCEPTS); in recalc_intercepts()
136 c = &svm->vmcb->control; in recalc_intercepts()
326 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_merge_msrpm()
[all …]
H A Davic.c188 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb() local
191 vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); in avic_activate_vmcb()
193 vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; in avic_activate_vmcb()
194 vmcb->control.avic_physical_id |= avic_get_max_physical_id(vcpu); in avic_activate_vmcb()
196 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; in avic_activate_vmcb()
206 vmcb->control.int_ctl |= X2APIC_MODE_MASK; in avic_activate_vmcb()
224 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb() local
226 vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); in avic_deactivate_vmcb()
227 vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; in avic_deactivate_vmcb()
362 void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb) in avic_init_vmcb() argument
[all …]
H A Dsev.c886 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) in sev_es_sync_vmsa()
895 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa()
2034 dst_svm->vmcb->control.ghcb_gpa = src_svm->vmcb->control.ghcb_gpa; in sev_migrate_from()
2035 dst_svm->vmcb->control.vmsa_pa = src_svm->vmcb->control.vmsa_pa; in sev_migrate_from()
2039 src_svm->vmcb->control.ghcb_gpa = INVALID_PAGE; in sev_migrate_from()
2040 src_svm->vmcb->control.vmsa_pa = INVALID_PAGE; in sev_migrate_from()
3287 struct vmcb_control_area *control = &svm->vmcb->control; in dump_ghcb()
3304 pr_err("GHCB (GPA=%016llx) snapshot:\n", svm->vmcb->control.ghcb_gpa); in dump_ghcb()
3337 struct vmcb_control_area *control = &svm->vmcb->control; in sev_es_sync_from_ghcb()
3364 svm->vmcb->save.cpl = kvm_ghcb_get_cpl_if_valid(svm); in sev_es_sync_from_ghcb()
[all …]
H A Dsvm_onhyperv.c26 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 Dnested_invalid_cr3_test.c30 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 Dnested_exceptions_test.c77 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 Dstate_test.c37 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code() local
45 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code()
46 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code()
48 vmcb->save.rip += 3; 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()
H A Daperfmperf_test.c68 struct vmcb *vmcb = svm->vmcb; in l1_svm_code() local
71 run_guest(vmcb, svm->vmcb_gpa); in l1_svm_code()
H A Dnested_tsc_adjust_test.c111 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 Dnested_tsc_scaling_test.c97 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 Dnested_close_kvm_test.c56 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code()