/kernel/linux/linux-5.10/arch/x86/kvm/vmx/ |
H A D | vmx_ops.h | 11 #include "vmcs.h" 19 void vmclear_error(struct vmcs *vmcs, u64 phys_addr); 20 void vmptrld_error(struct vmcs *vmcs, u64 phys_addr); 238 static inline void vmcs_clear(struct vmcs *vmcs) in vmcs_clear() argument 240 u64 phys_addr = __pa(vmcs); in vmcs_clear() 242 vmx_asm1(vmclear, "m"(phys_addr), vmcs, phys_addr); in vmcs_clear() 245 static inline void vmcs_load(struct vmcs *vmc argument [all...] |
H A D | vmcs.h | 19 struct vmcs { struct 25 DECLARE_PER_CPU(struct vmcs *, current_vmcs); 59 struct vmcs *vmcs; member 60 struct vmcs *shadow_vmcs;
|
H A D | vmx.h | 13 #include "vmcs.h" 123 * Indicates if the shadow vmcs or enlightened vmcs must be updated 389 static inline u32 __##lname##_controls_get(struct loaded_vmcs *vmcs) \ 391 return vmcs->controls_shadow.lname; \ 482 struct vmcs *alloc_vmcs_cpu(bool shadow, int cpu, gfp_t flags); 483 void free_vmcs(struct vmcs *vmcs); 488 static inline struct vmcs *alloc_vmcs(bool shadow) in alloc_vmcs()
|
H A D | vmx.c | 62 #include "vmcs.h" 448 noinline void vmclear_error(struct vmcs *vmcs, u64 phys_addr) in vmclear_error() argument 450 vmx_insn_failed("kvm: vmclear failed: %p/%llx\n", vmcs, phys_addr); in vmclear_error() 453 noinline void vmptrld_error(struct vmcs *vmcs, u64 phys_addr) in vmptrld_error() argument 455 vmx_insn_failed("kvm: vmptrld failed: %p/%llx\n", vmcs, phys_addr); in vmptrld_error() 470 static DEFINE_PER_CPU(struct vmcs *, vmxarea); 471 DEFINE_PER_CPU(struct vmcs *, current_vmcs); 626 evmcs = (struct hv_enlightened_vmcs *)to_vmx(vcpu)->loaded_vmcs->vmcs; in hv_enable_direct_tlbflush() 2674 struct vmcs *vmcs; alloc_vmcs_cpu() local 2693 free_vmcs(struct vmcs *vmcs) free_vmcs() argument 2760 struct vmcs *vmcs; alloc_kvm_area() local [all...] |
H A D | nested.c | 256 static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs) in vmx_switch_vmcs() argument 262 if (WARN_ON_ONCE(vmx->loaded_vmcs == vmcs)) in vmx_switch_vmcs() 267 vmx->loaded_vmcs = vmcs; in vmx_switch_vmcs() 323 * Ensure that the current vmcs of the logical processor is the 1557 struct vmcs *shadow_vmcs = vmx->vmcs01.shadow_vmcs; in copy_shadow_to_vmcs12() 1577 vmcs_load(vmx->loaded_vmcs->vmcs); in copy_shadow_to_vmcs12() 1592 struct vmcs *shadow_vmcs = vmx->vmcs01.shadow_vmcs; in copy_vmcs12_to_shadow() 1613 vmcs_load(vmx->loaded_vmcs->vmcs); in copy_vmcs12_to_shadow() 2518 * L2 guest. L1 has a vmcs for L2 (vmcs12), and this function "merges" it 2521 * needs. In addition to modifying the active vmcs (whic [all...] |
/kernel/linux/linux-6.6/arch/x86/kvm/vmx/ |
H A D | vmx_ops.h | 10 #include "vmcs.h" 15 void vmclear_error(struct vmcs *vmcs, u64 phys_addr); 16 void vmptrld_error(struct vmcs *vmcs, u64 phys_addr); 287 static inline void vmcs_clear(struct vmcs *vmcs) in vmcs_clear() argument 289 u64 phys_addr = __pa(vmcs); in vmcs_clear() 291 vmx_asm1(vmclear, "m"(phys_addr), vmcs, phys_addr); in vmcs_clear() 294 static inline void vmcs_load(struct vmcs *vmc argument [all...] |
H A D | vmcs.h | 21 struct vmcs { struct 27 DECLARE_PER_CPU(struct vmcs *, current_vmcs); 62 struct vmcs *vmcs; member 63 struct vmcs *shadow_vmcs;
|
H A D | vmx.h | 14 #include "vmcs.h" 148 * Indicates if the shadow vmcs or enlightened vmcs must be updated 589 static inline u##bits __##lname##_controls_get(struct loaded_vmcs *vmcs) \ 591 return vmcs->controls_shadow.lname; \ 697 struct vmcs *alloc_vmcs_cpu(bool shadow, int cpu, gfp_t flags); 698 void free_vmcs(struct vmcs *vmcs); 703 static inline struct vmcs *alloc_vmcs(bool shadow) in alloc_vmcs()
|
H A D | vmx.c | 64 #include "vmcs.h" 457 noinline void vmclear_error(struct vmcs *vmcs, u64 phys_addr) in vmclear_error() argument 460 vmcs, phys_addr, vmcs_read32(VM_INSTRUCTION_ERROR)); in vmclear_error() 463 noinline void vmptrld_error(struct vmcs *vmcs, u64 phys_addr) in vmptrld_error() argument 466 vmcs, phys_addr, vmcs_read32(VM_INSTRUCTION_ERROR)); in vmptrld_error() 481 static DEFINE_PER_CPU(struct vmcs *, vmxarea); 482 DEFINE_PER_CPU(struct vmcs *, current_vmcs); 547 evmcs = (struct hv_enlightened_vmcs *)to_vmx(vcpu)->loaded_vmcs->vmcs; in hv_enable_l2_tlb_flush() 2871 struct vmcs *vmcs; alloc_vmcs_cpu() local 2890 free_vmcs(struct vmcs *vmcs) free_vmcs() argument 2957 struct vmcs *vmcs; alloc_kvm_area() local [all...] |
H A D | nested.c | 265 static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs) in vmx_switch_vmcs() argument 271 if (WARN_ON_ONCE(vmx->loaded_vmcs == vmcs)) in vmx_switch_vmcs() 276 vmx->loaded_vmcs = vmcs; in vmx_switch_vmcs() 340 * Ensure that the current vmcs of the logical processor is the 1520 struct vmcs *shadow_vmcs = vmx->vmcs01.shadow_vmcs; in copy_shadow_to_vmcs12() 1540 vmcs_load(vmx->loaded_vmcs->vmcs); in copy_shadow_to_vmcs12() 1555 struct vmcs *shadow_vmcs = vmx->vmcs01.shadow_vmcs; in copy_vmcs12_to_shadow() 1576 vmcs_load(vmx->loaded_vmcs->vmcs); in copy_vmcs12_to_shadow() 2524 * L2 guest. L1 has a vmcs for L2 (vmcs12), and this function "merges" it 2527 * needs. In addition to modifying the active vmcs (whic [all...] |
/kernel/linux/linux-6.6/tools/perf/util/intel-pt-decoder/ |
H A D | intel-pt-decoder.c | 124 struct intel_pt_vmcs_info *(*findnew_vmcs_info)(void *data, uint64_t vmcs); 167 uint64_t vmcs; member 2318 bool tsc, pip, vmcs, tma, psbend; member 2356 data->vmcs = true; in intel_pt_vm_psb_lookahead_cb() 2516 payload, decoder->packet.payload, vmcs_info->vmcs, in intel_pt_translate_vm_tsc() 2524 .vmcs = NO_VMCS, in intel_pt_translate_vm_tsc_offset() 2544 vmcs_info->vmcs, vmcs_info->tsc_offset); in intel_pt_print_vmcs_info() 2599 uint64_t vmcs; in intel_pt_vm_tm_corr_tsc() local 2627 vmcs = data->vmcs in intel_pt_vm_tm_corr_tsc() 2752 uint64_t vmcs; intel_pt_vm_tm_corr_pebs_tsc() local [all...] |
H A D | intel-pt-decoder.h | 210 uint64_t vmcs; member 280 struct intel_pt_vmcs_info *(*findnew_vmcs_info)(void *data, uint64_t vmcs);
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | vmx.c | 85 /* Setup of a region of guest memory for a vmcs. */ in vcpu_alloc_vmx() 86 vmx->vmcs = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx() 87 vmx->vmcs_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx() 88 vmx->vmcs_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx() 163 *(uint32_t *)(vmx->vmcs) = vmcs_revision(); in load_vmcs()
|
/kernel/linux/linux-5.10/arch/loongarch/kvm/ |
H A D | loongarch.c | 132 static struct kvm_context __percpu *vmcs; variable 392 kvm->arch.vmcs = vmcs; in kvm_arch_init_vm() 450 context = per_cpu_ptr(vcpu->kvm->arch.vmcs, cpu); in _kvm_new_vpid() 496 context = per_cpu_ptr(vcpu->kvm->arch.vmcs, cpu); in _kvm_update_vmid() 689 context = per_cpu_ptr(vcpu->kvm->arch.vmcs, cpu); in kvm_arch_vcpu_destroy() 844 context = per_cpu_ptr(vcpu->kvm->arch.vmcs, cpu); in _kvm_vcpu_load() 1750 vmcs = alloc_percpu(struct kvm_context); in kvm_arch_init() 1751 if (!vmcs) { in kvm_arch_init() 1762 context = per_cpu_ptr(vmcs, cp in kvm_arch_init() [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | vmx.c | 88 /* Setup of a region of guest memory for a vmcs. */ in vcpu_alloc_vmx() 89 vmx->vmcs = (void *)vm_vaddr_alloc(vm, getpagesize(), 0x10000, 0, 0); in vcpu_alloc_vmx() 90 vmx->vmcs_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx() 91 vmx->vmcs_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx() 181 *(uint32_t *)(vmx->vmcs) = vmcs_revision(); in load_vmcs()
|
/kernel/linux/linux-6.6/tools/perf/util/ |
H A D | intel-pt.c | 317 u64 vmcs, in intel_pt_findnew_vmcs() 328 if (v->vmcs == vmcs) in intel_pt_findnew_vmcs() 331 if (vmcs < v->vmcs) in intel_pt_findnew_vmcs() 339 v->vmcs = vmcs; in intel_pt_findnew_vmcs() 350 static struct intel_pt_vmcs_info *intel_pt_findnew_vmcs_info(void *data, uint64_t vmcs) in intel_pt_findnew_vmcs_info() argument 355 if (!vmcs && !pt->dflt_tsc_offset) in intel_pt_findnew_vmcs_info() 358 return intel_pt_findnew_vmcs(&pt->vmcs_info, vmcs, p in intel_pt_findnew_vmcs_info() 316 intel_pt_findnew_vmcs(struct rb_root *rb_root, u64 vmcs, u64 dflt_tsc_offset) intel_pt_findnew_vmcs() argument 4073 u64 tsc_offset, vmcs; intel_pt_parse_vm_tm_corr_arg() local [all...] |
/kernel/linux/linux-5.10/arch/loongarch/include/asm/ |
H A D | kvm_host.h | 130 struct kvm_context __percpu *vmcs; member
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/include/ |
H A D | evmcs.h | 241 static inline int evmcs_vmptrld(uint64_t vmcs_pa, void *vmcs) in evmcs_vmptrld() argument 246 current_evmcs = vmcs; in evmcs_vmptrld()
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/include/x86_64/ |
H A D | vmx.h | 547 void *vmcs; member
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/include/x86_64/ |
H A D | vmx.h | 507 void *vmcs; member
|
H A D | evmcs.h | 251 static inline int evmcs_vmptrld(uint64_t vmcs_pa, void *vmcs) in evmcs_vmptrld() argument 256 current_evmcs = vmcs; in evmcs_vmptrld()
|