/linux/arch/x86/kvm/svm/ |
A D | svm.h | 145 struct vmcb *vmcb; member 257 static inline void vmcb_mark_all_dirty(struct vmcb *vmcb) in vmcb_mark_all_dirty() argument 262 static inline void vmcb_mark_all_clean(struct vmcb *vmcb) in vmcb_mark_all_clean() argument 268 static inline bool vmcb_is_clean(struct vmcb *vmcb, int bit) in vmcb_is_clean() argument 278 static inline bool vmcb_is_dirty(struct vmcb *vmcb, int bit) in vmcb_is_dirty() argument 308 struct vmcb *vmcb = svm->vmcb01.ptr; in set_dr_intercepts() local 335 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_dr_intercepts() local 350 struct vmcb *vmcb = svm->vmcb01.ptr; in set_exception_intercept() local 360 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_exception_intercept() local 370 struct vmcb *vmcb = svm->vmcb01.ptr; in svm_set_intercept() local [all …]
|
A D | svm_onhyperv.h | 41 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) in svm_hv_init_vmcb() argument 44 (struct hv_enlightenments *)vmcb->control.reserved_sw; in svm_hv_init_vmcb() 82 struct vmcb *vmcb = to_svm(vcpu)->vmcb; in svm_hv_vmcb_dirty_nested_enlightenments() local 84 (struct hv_enlightenments *)vmcb->control.reserved_sw; in svm_hv_vmcb_dirty_nested_enlightenments() 92 if (vmcb_is_clean(vmcb, VMCB_HV_NESTED_ENLIGHTENMENTS) && in svm_hv_vmcb_dirty_nested_enlightenments() 94 vmcb_mark_dirty(vmcb, VMCB_HV_NESTED_ENLIGHTENMENTS); in svm_hv_vmcb_dirty_nested_enlightenments() 97 static inline void svm_hv_update_vp_id(struct vmcb *vmcb, in svm_hv_update_vp_id() argument 101 (struct hv_enlightenments *)vmcb->control.reserved_sw; in svm_hv_update_vp_id() 106 vmcb_mark_dirty(vmcb, VMCB_HV_NESTED_ENLIGHTENMENTS); in svm_hv_update_vp_id() 111 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) in svm_hv_init_vmcb() argument [all …]
|
A D | nested.c | 45 svm->vmcb->control.exit_code_hi = 0; in nested_svm_inject_npf_exit() 132 c = &svm->vmcb->control; in recalc_intercepts() 373 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12() 589 static void nested_svm_copy_common_state(struct vmcb *from_vmcb, struct vmcb *to_vmcb) in nested_svm_copy_common_state() 651 struct vmcb *vmcb12; in nested_svm_vmrun() 750 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_vmloadsave_state() 769 struct vmcb *vmcb12; in nested_svm_vmexit() 770 struct vmcb *vmcb = svm->vmcb; in nested_svm_vmexit() local 980 vmcb_mark_all_dirty(svm->vmcb); in svm_leave_nested() 1264 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_get_nested_state() [all …]
|
A D | svm.c | 1470 static void svm_clear_current_vmcb(struct vmcb *vmcb) in svm_clear_current_vmcb() argument 1590 struct vmcb *vmcb = to_svm(vcpu)->vmcb; in svm_get_if_flag() local 1922 struct vmcb *vmcb = svm->vmcb; in svm_set_dr6() local 2017 svm->vmcb->save.cs.base + svm->vmcb->save.rip; in db_interception() 2031 kvm_run->debug.arch.pc = svm->vmcb->save.cs.base + svm->vmcb->save.rip; in bp_interception() 2132 clear_page(svm->vmcb); in shutdown_interception() 2183 struct vmcb *vmcb12; in vmload_vmsave_interception() 3524 struct vmcb *vmcb = svm->vmcb; in svm_nmi_blocked() local 3575 struct vmcb *vmcb = svm->vmcb; in svm_interrupt_blocked() local 4195 struct vmcb *vmcb = svm->vmcb; in svm_check_intercept() local [all …]
|
A D | avic.c | 190 struct vmcb *vmcb = svm->vmcb; in avic_init_vmcb() local 203 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; in avic_init_vmcb() 205 vmcb->control.int_ctl &= ~AVIC_ENABLE_MASK; in avic_init_vmcb() 313 u32 icrl = svm->vmcb->control.exit_info_1; in avic_incomplete_ipi_interception() 481 u32 offset = svm->vmcb->control.exit_info_1 & in avic_unaccel_trap_write() 538 u32 offset = svm->vmcb->control.exit_info_1 & in avic_unaccelerated_access_interception() 540 u32 vector = svm->vmcb->control.exit_info_2 & in avic_unaccelerated_access_interception() 635 struct vmcb *vmcb = svm->vmcb01.ptr; in svm_refresh_apicv_exec_ctrl() local 650 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; in svm_refresh_apicv_exec_ctrl() 652 vmcb->control.int_ctl &= ~AVIC_ENABLE_MASK; in svm_refresh_apicv_exec_ctrl() [all …]
|
A D | svm_onhyperv.c | 30 hve = (struct hv_enlightenments *)to_svm(vcpu)->vmcb->control.reserved_sw; in svm_hv_enable_direct_tlbflush() 36 vmcb_mark_dirty(to_svm(vcpu)->vmcb, VMCB_HV_NESTED_ENLIGHTENMENTS); in svm_hv_enable_direct_tlbflush()
|
A D | sev.c | 561 struct vmcb_save_area *save = &svm->vmcb->save; in sev_es_sync_vmsa() 1668 dst_svm->vmcb->control.ghcb_gpa = src_svm->vmcb->control.ghcb_gpa; in sev_es_migrate_from() 1669 dst_svm->vmcb->control.vmsa_pa = src_svm->vmcb->control.vmsa_pa; in sev_es_migrate_from() 1674 src_svm->vmcb->control.vmsa_pa = INVALID_PAGE; in sev_es_migrate_from() 2532 if (sd->sev_vmcbs[asid] == svm->vmcb && in pre_sev_run() 2536 sd->sev_vmcbs[asid] = svm->vmcb; in pre_sev_run() 2538 vmcb_mark_dirty(svm->vmcb, VMCB_ASID); in pre_sev_run() 2630 svm->vmcb->control.ghcb_gpa &= ~(mask << pos); in set_ghcb_msr_bits() 2641 svm->vmcb->control.ghcb_gpa = value; in set_ghcb_msr() 2834 if (svm->vmcb->control.exit_info_2 > INT_MAX) in sev_es_string_io() [all …]
|
/linux/tools/testing/selftests/kvm/lib/x86_64/ |
A D | svm.c | 38 svm->vmcb = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm() 64 static void clear_vmcb(struct vmcb *vmcb) in clear_vmcb() argument 66 int n = sizeof(*vmcb) / sizeof(u32); in clear_vmcb() 73 struct vmcb *vmcb = svm->vmcb; in generic_svm_setup() local 75 struct vmcb_save_area *save = &vmcb->save; in generic_svm_setup() 76 struct vmcb_control_area *ctrl = &vmcb->control; in generic_svm_setup() 87 clear_vmcb(vmcb); in generic_svm_setup() 110 vmcb->save.rip = (u64)guest_rip; in generic_svm_setup() 111 vmcb->save.rsp = (u64)guest_rsp; in generic_svm_setup() 142 void run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa) in run_guest() argument [all …]
|
/linux/tools/testing/selftests/kvm/x86_64/ |
A D | svm_int_ctl_test.c | 66 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 75 vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; in l1_guest_code() 78 vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); in l1_guest_code() 81 vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT); in l1_guest_code() 82 vmcb->control.int_vector = VINTR_IRQ_NUMBER; in l1_guest_code() 84 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 85 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
|
A D | svm_vmcall_test.c | 28 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() local 34 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 36 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
|
A D | state_test.c | 39 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code() local 47 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 48 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code() 50 vmcb->save.rip += 3; in svm_l1_guest_code() 51 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 52 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); in svm_l1_guest_code()
|
A D | smm_test.c | 107 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code() 108 svm->vmcb->save.rip += 3; in guest_code() 109 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
|
/linux/tools/testing/selftests/kvm/include/x86_64/ |
A D | svm_util.h | 23 struct vmcb *vmcb; /* gva */ member 35 void run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa);
|
A D | svm.h | 209 struct __attribute__ ((__packed__)) vmcb { struct
|
/linux/arch/x86/kvm/ |
A D | trace.h | 580 TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, 582 TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt), 586 __field( __u64, vmcb ) 595 __entry->vmcb = vmcb; 604 __entry->rip, __entry->vmcb, __entry->nested_rip,
|
/linux/arch/x86/include/asm/ |
A D | svm.h | 335 struct vmcb { struct
|
/linux/Documentation/virt/kvm/ |
A D | locking.rst | 229 - tsc offset in vmcb
|