Home
last modified time | relevance | path

Searched refs:svm (Results 1 – 25 of 52) sorted by relevance

123

/openbmc/linux/arch/x86/kvm/svm/
H A Dnested.c39 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_inject_npf_exit() local
40 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_npf_exit()
56 nested_svm_vmexit(svm); in nested_svm_inject_npf_exit()
61 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_pdptr() local
62 u64 cr3 = svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_pdptr()
79 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_cr3() local
81 return svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_cr3()
86 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_init_mmu_context() local
97 kvm_init_shadow_npt_mmu(vcpu, X86_CR0_PG, svm->vmcb01.ptr->save.cr4, in nested_svm_init_mmu_context()
98 svm->vmcb01.ptr->save.efer, in nested_svm_init_mmu_context()
[all …]
H A Dsvm.c299 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_efer() local
314 svm_set_gif(svm, true); in svm_set_efer()
317 clr_exception_intercept(svm, GP_VECTOR); in svm_set_efer()
325 svm_free_nested(svm); in svm_set_efer()
328 int ret = svm_allocate_nested(svm); in svm_set_efer()
340 set_exception_intercept(svm, GP_VECTOR); in svm_set_efer()
344 svm->vmcb->save.efer = efer | EFER_SVME; in svm_set_efer()
345 vmcb_mark_dirty(svm->vmcb, VMCB_CR); in svm_set_efer()
351 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_interrupt_shadow() local
354 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) in svm_get_interrupt_shadow()
[all …]
H A Dsvm.h313 void recalc_intercepts(struct vcpu_svm *svm);
402 static inline void set_exception_intercept(struct vcpu_svm *svm, u32 bit) in set_exception_intercept() argument
404 struct vmcb *vmcb = svm->vmcb01.ptr; in set_exception_intercept()
409 recalc_intercepts(svm); in set_exception_intercept()
412 static inline void clr_exception_intercept(struct vcpu_svm *svm, u32 bit) in clr_exception_intercept() argument
414 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_exception_intercept()
419 recalc_intercepts(svm); in clr_exception_intercept()
422 static inline void svm_set_intercept(struct vcpu_svm *svm, int bit) in svm_set_intercept() argument
424 struct vmcb *vmcb = svm->vmcb01.ptr; in svm_set_intercept()
428 recalc_intercepts(svm); in svm_set_intercept()
[all …]
H A Davic.c85 static void avic_activate_vmcb(struct vcpu_svm *svm) in avic_activate_vmcb() argument
87 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb()
101 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb()
105 svm_set_x2apic_msr_interception(svm, false); in avic_activate_vmcb()
111 kvm_make_request(KVM_REQ_TLB_FLUSH_CURRENT, &svm->vcpu); in avic_activate_vmcb()
116 svm_set_x2apic_msr_interception(svm, true); in avic_activate_vmcb()
120 static void avic_deactivate_vmcb(struct vcpu_svm *svm) in avic_deactivate_vmcb() argument
122 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb()
131 if (is_guest_mode(&svm->vcpu) && in avic_deactivate_vmcb()
132 vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_MSR_PROT)) in avic_deactivate_vmcb()
[all …]
H A Dsev.c579 static int sev_es_sync_vmsa(struct vcpu_svm *svm) in sev_es_sync_vmsa() argument
581 struct sev_es_save_area *save = svm->sev_es.vmsa; in sev_es_sync_vmsa()
584 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) in sev_es_sync_vmsa()
593 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa()
596 save->rax = svm->vcpu.arch.regs[VCPU_REGS_RAX]; in sev_es_sync_vmsa()
597 save->rbx = svm->vcpu.arch.regs[VCPU_REGS_RBX]; in sev_es_sync_vmsa()
598 save->rcx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; in sev_es_sync_vmsa()
599 save->rdx = svm->vcpu.arch.regs[VCPU_REGS_RDX]; in sev_es_sync_vmsa()
600 save->rsp = svm->vcpu.arch.regs[VCPU_REGS_RSP]; in sev_es_sync_vmsa()
601 save->rbp = svm->vcpu.arch.regs[VCPU_REGS_RBP]; in sev_es_sync_vmsa()
[all …]
H A Dhyperv.c11 struct vcpu_svm *svm = to_svm(vcpu); in svm_hv_inject_synthetic_vmexit_post_tlb_flush() local
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()
17 nested_svm_vmexit(svm); in svm_hv_inject_synthetic_vmexit_post_tlb_flush()
H A Dhyperv.h16 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_hv_update_vm_vp_ids() local
17 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; in nested_svm_hv_update_vm_vp_ids()
30 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_l2_tlb_flush_enabled() local
31 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; in nested_svm_l2_tlb_flush_enabled()
/openbmc/linux/tools/testing/selftests/kvm/lib/x86_64/
H A Dsvm.c35 struct svm_test_data *svm = addr_gva2hva(vm, svm_gva); in vcpu_alloc_svm() local
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()
41 svm->save_area = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm()
42 svm->save_area_hva = addr_gva2hva(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm()
43 svm->save_area_gpa = addr_gva2gpa(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm()
45 svm->msr = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm()
46 svm->msr_hva = addr_gva2hva(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm()
47 svm->msr_gpa = addr_gva2gpa(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm()
[all …]
/openbmc/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_svm.c94 nouveau_ivmm_find(struct nouveau_svm *svm, u64 inst) in nouveau_ivmm_find() argument
97 list_for_each_entry(ivmm, &svm->inst, head) { in nouveau_ivmm_find()
172 if (!cli->svm.svmm) { in nouveau_svmm_bind()
189 nouveau_dmem_migrate_vma(cli->drm, cli->svm.svmm, vma, addr, in nouveau_svmm_bind()
213 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
214 ivmm = nouveau_ivmm_find(svmm->vmm->cli->drm->svm, inst); in nouveau_svmm_part()
219 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
234 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
235 list_add(&ivmm->head, &svmm->vmm->cli->drm->svm->inst); in nouveau_svmm_join()
236 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
[all …]
/openbmc/linux/drivers/iommu/intel/
H A Dsvm.c48 svm_lookup_device_by_dev(struct intel_svm *svm, struct device *dev) in svm_lookup_device_by_dev() argument
53 list_for_each_entry_rcu(t, &svm->devs, list) { in svm_lookup_device_by_dev()
172 static void __flush_svm_range_dev(struct intel_svm *svm, in __flush_svm_range_dev() argument
182 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, address, pages, ih); in __flush_svm_range_dev()
185 svm->pasid, sdev->qdep, address, in __flush_svm_range_dev()
188 svm->pasid, sdev->qdep); in __flush_svm_range_dev()
192 static void intel_flush_svm_range_dev(struct intel_svm *svm, in intel_flush_svm_range_dev() argument
203 __flush_svm_range_dev(svm, sdev, start, align >> VTD_PAGE_SHIFT, ih); in intel_flush_svm_range_dev()
208 static void intel_flush_svm_range(struct intel_svm *svm, unsigned long address, in intel_flush_svm_range() argument
214 list_for_each_entry_rcu(sdev, &svm->devs, list) in intel_flush_svm_range()
[all …]
/openbmc/linux/tools/testing/selftests/kvm/x86_64/
H A Dhyperv_svm_test.c69 static void __attribute__((__flatten__)) guest_code(struct svm_test_data *svm, in guest_code() argument
74 struct vmcb *vmcb = svm->vmcb; in guest_code()
83 GUEST_ASSERT(svm->vmcb_gpa); in guest_code()
85 generic_svm_setup(svm, l2_guest_code, in guest_code()
97 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
104 __set_bit(2 * (MSR_FS_BASE & 0x1fff), svm->msr + 0x800); in guest_code()
105 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
111 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
116 __set_bit(2 * (MSR_GS_BASE & 0x1fff), svm->msr + 0x800); in guest_code()
119 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
[all …]
H A Dnested_exceptions_test.c76 static void svm_run_l2(struct svm_test_data *svm, void *l2_code, int vector, in svm_run_l2() argument
79 struct vmcb *vmcb = svm->vmcb; in svm_run_l2()
83 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2()
92 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument
94 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code()
97 generic_svm_setup(svm, NULL, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_svm_code()
98 svm->vmcb->save.idtr.limit = 0; in l1_svm_code()
102 svm_run_l2(svm, l2_ss_pending_test, SS_VECTOR, SS_ERROR_CODE); in l1_svm_code()
103 svm_run_l2(svm, l2_ss_injected_gp_test, GP_VECTOR, GP_ERROR_CODE_AMD); in l1_svm_code()
106 svm_run_l2(svm, l2_ss_injected_df_test, DF_VECTOR, DF_ERROR_CODE); in l1_svm_code()
[all …]
H A Dsvm_nested_shutdown_test.c15 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument
20 static void l1_guest_code(struct svm_test_data *svm, struct idt_entry *idt) in l1_guest_code() argument
24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
26 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
36 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dsvm_vmcall_test.c15 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument
20 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument
24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
27 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
30 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dsvm_int_ctl_test.c33 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument
58 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument
62 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
67 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
80 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dsmm_test.c72 struct svm_test_data *svm = arg; in guest_code() local
87 generic_svm_setup(svm, l2_guest_code, in guest_code()
103 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
104 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
H A Dtriple_fault_event_test.c43 void l1_guest_code_svm(struct svm_test_data *svm) in l1_guest_code_svm() argument
45 struct vmcb *vmcb = svm->vmcb; in l1_guest_code_svm()
47 generic_svm_setup(svm, l2_guest_code, in l1_guest_code_svm()
53 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code_svm()
H A Dsvm_nested_soft_inject_test.c79 static void l1_guest_code(struct svm_test_data *svm, uint64_t is_nmi, uint64_t idt_alt) in l1_guest_code() argument
83 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
89 generic_svm_setup(svm, in l1_guest_code()
104 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
134 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dstate_test.c35 static void svm_l1_guest_code(struct svm_test_data *svm) in svm_l1_guest_code() argument
38 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code()
40 GUEST_ASSERT(svm->vmcb_gpa); in svm_l1_guest_code()
42 generic_svm_setup(svm, svm_l2_guest_code, in svm_l1_guest_code()
46 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code()
50 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code()
/openbmc/linux/arch/x86/kvm/
H A DMakefile33 kvm-amd-y += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o \
34 svm/sev.o svm/hyperv.o
37 kvm-amd-y += svm/svm_onhyperv.o
45 $(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
/openbmc/linux/arch/arm/mm/
H A Dioremap.c53 struct static_vm *svm; in find_static_vm_paddr() local
56 list_for_each_entry(svm, &static_vmlist, list) { in find_static_vm_paddr()
57 vm = &svm->vm; in find_static_vm_paddr()
67 return svm; in find_static_vm_paddr()
75 struct static_vm *svm; in find_static_vm_vaddr() local
78 list_for_each_entry(svm, &static_vmlist, list) { in find_static_vm_vaddr()
79 vm = &svm->vm; in find_static_vm_vaddr()
86 return svm; in find_static_vm_vaddr()
92 void __init add_static_vm_early(struct static_vm *svm) in add_static_vm_early() argument
98 vm = &svm->vm; in add_static_vm_early()
[all …]
H A Dmmu.c1025 struct static_vm *svm; in iotable_init() local
1030 svm = memblock_alloc(sizeof(*svm) * nr, __alignof__(*svm)); in iotable_init()
1031 if (!svm) in iotable_init()
1033 __func__, sizeof(*svm) * nr, __alignof__(*svm)); in iotable_init()
1038 vm = &svm->vm; in iotable_init()
1045 add_static_vm_early(svm++); in iotable_init()
1053 struct static_vm *svm; in vm_reserve_area_early() local
1055 svm = memblock_alloc(sizeof(*svm), __alignof__(*svm)); in vm_reserve_area_early()
1056 if (!svm) in vm_reserve_area_early()
1058 __func__, sizeof(*svm), __alignof__(*svm)); in vm_reserve_area_early()
[all …]
/openbmc/linux/tools/testing/vsock/
H A Dutil.c91 struct sockaddr_vm svm; in vsock_connect() member
93 .svm = { in vsock_connect()
108 ret = connect(fd, &addr.sa, sizeof(addr.svm)); in vsock_connect()
141 struct sockaddr_vm svm; in vsock_accept() member
143 .svm = { in vsock_accept()
151 struct sockaddr_vm svm; in vsock_accept() member
153 socklen_t clientaddr_len = sizeof(clientaddr.svm); in vsock_accept()
160 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) { in vsock_accept()
186 if (clientaddr_len != sizeof(clientaddr.svm)) { in vsock_accept()
198 *clientaddrp = clientaddr.svm; in vsock_accept()
H A Dvsock_perf.c100 struct sockaddr_vm svm; in vsock_connect() member
102 .svm = { in vsock_connect()
117 if (connect(fd, &addr.sa, sizeof(addr.svm)) < 0) { in vsock_connect()
143 struct sockaddr_vm svm; in run_receiver() member
145 .svm = { in run_receiver()
153 struct sockaddr_vm svm; in run_receiver() member
156 socklen_t clientaddr_len = sizeof(clientaddr.svm); in run_receiver()
169 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) in run_receiver()
/openbmc/qemu/util/
H A Dqemu-sockets.c711 struct sockaddr_vm *svm, in vsock_parse_vaddr_to_sockaddr() argument
716 memset(svm, 0, sizeof(*svm)); in vsock_parse_vaddr_to_sockaddr()
717 svm->svm_family = AF_VSOCK; in vsock_parse_vaddr_to_sockaddr()
724 svm->svm_cid = val; in vsock_parse_vaddr_to_sockaddr()
731 svm->svm_port = val; in vsock_parse_vaddr_to_sockaddr()
737 const struct sockaddr_vm *svm, Error **errp) in vsock_connect_addr() argument
751 if (connect(sock, (const struct sockaddr *)svm, sizeof(*svm)) < 0) { in vsock_connect_addr()
768 struct sockaddr_vm svm; in vsock_connect_saddr() local
770 if (!vsock_parse_vaddr_to_sockaddr(vaddr, &svm, errp)) { in vsock_connect_saddr()
774 return vsock_connect_addr(vaddr, &svm, errp); in vsock_connect_saddr()
[all …]

123