Home
last modified time | relevance | path

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

123

/linux/arch/x86/kvm/svm/
H A Dsvm.c208 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_efer() local
238 clr_exception_intercept(svm, GP_VECTOR); in svm_set_efer()
246 svm_free_nested(svm); in svm_set_efer()
249 int ret = svm_allocate_nested(svm); in svm_set_efer()
261 set_exception_intercept(svm, GP_VECTOR); in svm_set_efer()
267 svm->vmcb->save.efer = efer | EFER_SVME; in svm_set_efer()
268 vmcb_mark_dirty(svm->vmcb, VMCB_CR); in svm_set_efer()
274 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_interrupt_shadow() local
277 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) in svm_get_interrupt_shadow()
284 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_interrupt_shadow() local
[all …]
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()
55 nested_svm_vmexit(svm); in nested_svm_inject_npf_exit()
60 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_pdptr() local
61 u64 cr3 = svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_pdptr()
78 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_cr3() local
80 return svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_cr3()
85 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_init_mmu_context() local
96 kvm_init_shadow_npt_mmu(vcpu, X86_CR0_PG, svm->vmcb01.ptr->save.cr4, in nested_svm_init_mmu_context()
97 svm->vmcb01.ptr->save.efer, in nested_svm_init_mmu_context()
[all …]
H A Dsvm.h440 static inline bool ghcb_gpa_is_registered(struct vcpu_svm *svm, u64 val) in ghcb_gpa_is_registered() argument
442 return svm->sev_es.ghcb_registered_gpa == val; in ghcb_gpa_is_registered()
532 void nested_vmcb02_recalc_intercepts(struct vcpu_svm *svm);
534 static inline void svm_mark_intercepts_dirty(struct vcpu_svm *svm) in svm_mark_intercepts_dirty() argument
536 vmcb_mark_dirty(svm->vmcb01.ptr, VMCB_INTERCEPTS); in svm_mark_intercepts_dirty()
544 if (is_guest_mode(&svm->vcpu)) in svm_mark_intercepts_dirty()
545 nested_vmcb02_recalc_intercepts(svm); in svm_mark_intercepts_dirty()
548 static inline void set_exception_intercept(struct vcpu_svm *svm, u32 bit) in set_exception_intercept() argument
550 struct vmcb *vmcb = svm->vmcb01.ptr; in set_exception_intercept()
555 svm_mark_intercepts_dirty(svm); in set_exception_intercept()
[all …]
H A Dsev.c198 static bool sev_vcpu_has_debug_swap(struct vcpu_svm *svm) in sev_vcpu_has_debug_swap() argument
200 struct kvm_vcpu *vcpu = &svm->vcpu; in sev_vcpu_has_debug_swap()
924 static int sev_es_sync_vmsa(struct vcpu_svm *svm) in sev_es_sync_vmsa() argument
926 struct kvm_vcpu *vcpu = &svm->vcpu; in sev_es_sync_vmsa()
928 struct sev_es_save_area *save = svm->sev_es.vmsa; in sev_es_sync_vmsa()
940 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) in sev_es_sync_vmsa()
949 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa()
952 save->rax = svm->vcpu.arch.regs[VCPU_REGS_RAX]; in sev_es_sync_vmsa()
953 save->rbx = svm->vcpu.arch.regs[VCPU_REGS_RBX]; in sev_es_sync_vmsa()
954 save->rcx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; in sev_es_sync_vmsa()
[all …]
H A Davic.c122 static void avic_set_x2apic_msr_interception(struct vcpu_svm *svm, in avic_set_x2apic_msr_interception() argument
159 if (intercept == svm->x2avic_msrs_intercepted) in avic_set_x2apic_msr_interception()
166 svm_set_intercept_for_msr(&svm->vcpu, x2avic_passthrough_msrs[i], in avic_set_x2apic_msr_interception()
169 svm->x2avic_msrs_intercepted = intercept; in avic_set_x2apic_msr_interception()
197 static void avic_activate_vmcb(struct vcpu_svm *svm) in avic_activate_vmcb() argument
199 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb()
200 struct kvm_vcpu *vcpu = &svm->vcpu; in avic_activate_vmcb()
207 svm_clr_intercept(svm, INTERCEPT_CR8_WRITE); in avic_activate_vmcb()
236 kvm_make_request(KVM_REQ_TLB_FLUSH_CURRENT, &svm->vcpu); in avic_activate_vmcb()
245 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb()
[all …]
/linux/tools/testing/selftests/kvm/x86/
H A Dnested_vmsave_vmload_test.c71 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument
76 generic_svm_setup(svm, NULL, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_guest_code()
79 svm->vmcb->control.intercept |= (BIT_ULL(INTERCEPT_VMSAVE) | in l1_guest_code()
83 svm->vmcb->control.misc_ctl2 &= ~SVM_MISC2_ENABLE_V_VMLOAD_VMSAVE; in l1_guest_code()
85 svm->vmcb->save.rip = (u64)l2_guest_code_vmsave; in l1_guest_code()
86 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_guest_code()
87 GUEST_ASSERT_EQ(svm->vmcb->control.exit_code, SVM_EXIT_VMSAVE); in l1_guest_code()
89 svm->vmcb->save.rip = (u64)l2_guest_code_vmload; in l1_guest_code()
90 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_guest_code()
91 GUEST_ASSERT_EQ(svm->vmcb->control.exit_code, SVM_EXIT_VMLOAD); in l1_guest_code()
[all …]
H A Dnested_invalid_cr3_test.c21 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument
26 generic_svm_setup(svm, l2_guest_code, in l1_svm_code()
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 Dhyperv_svm_test.c68 static void __attribute__((__flatten__)) guest_code(struct svm_test_data *svm, in guest_code() argument
73 struct vmcb *vmcb = svm->vmcb; in guest_code()
82 GUEST_ASSERT(svm->vmcb_gpa); in guest_code()
84 generic_svm_setup(svm, l2_guest_code, in guest_code()
96 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
103 __set_bit(2 * (MSR_FS_BASE & 0x1fff), svm->msr + 0x800); in guest_code()
104 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
110 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
115 __set_bit(2 * (MSR_GS_BASE & 0x1fff), svm->msr + 0x800); in guest_code()
118 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
[all …]
H A Dsvm_nested_vmcb12_gpa.c31 static void l1_vmrun(struct svm_test_data *svm, gpa_t gpa) in l1_vmrun() argument
33 generic_svm_setup(svm, l2_code, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_vmrun()
38 static void l1_vmload(struct svm_test_data *svm, gpa_t gpa) in l1_vmload() argument
40 generic_svm_setup(svm, l2_code, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_vmload()
45 static void l1_vmsave(struct svm_test_data *svm, gpa_t gpa) in l1_vmsave() argument
47 generic_svm_setup(svm, l2_code, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_vmsave()
52 static void l1_vmexit(struct svm_test_data *svm, gpa_t gpa) in l1_vmexit() argument
54 generic_svm_setup(svm, l2_code, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_vmexit()
56 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_vmexit()
57 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_vmexit()
[all …]
H A Dnested_exceptions_test.c74 static void svm_run_l2(struct svm_test_data *svm, void *l2_code, int vector, in svm_run_l2() argument
77 struct vmcb *vmcb = svm->vmcb; in svm_run_l2()
81 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2()
91 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument
93 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code()
96 generic_svm_setup(svm, NULL, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_svm_code()
97 svm->vmcb->save.idtr.limit = 0; in l1_svm_code()
101 svm_run_l2(svm, l2_ss_pending_test, SS_VECTOR, SS_ERROR_CODE); in l1_svm_code()
102 svm_run_l2(svm, l2_ss_injected_gp_test, GP_VECTOR, GP_ERROR_CODE_AMD); in l1_svm_code()
105 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 Dnested_tsc_adjust_test.c106 struct svm_test_data *svm = data; in l1_guest_code() local
108 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
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 Dsvm_lbr_nested_state.c47 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument
56 static void l1_guest_code(struct svm_test_data *svm, bool nested_lbrv) in l1_guest_code() argument
59 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
68 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
76 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
77 GUEST_ASSERT(svm->vmcb->control.exit_code == SVM_EXIT_VMMCALL); in l1_guest_code()
H A Dsmm_test.c69 struct svm_test_data *svm = arg; in guest_code() local
84 generic_svm_setup(svm, l2_guest_code, in guest_code()
100 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
101 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
H A Dsvm_int_ctl_test.c33 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument
55 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument
59 struct vmcb *vmcb = svm->vmcb; in l1_guest_code()
64 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
77 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dsvm_nested_clear_efer_svme.c25 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument
29 generic_svm_setup(svm, l2_guest_code, in l1_guest_code()
31 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_guest_code()
H A Dnested_emulation_test.c57 struct svm_test_data *svm = test_data; in guest_code() local
58 struct vmcb *vmcb = svm->vmcb; in guest_code()
60 generic_svm_setup(svm, NULL, NULL); in guest_code()
97 struct svm_test_data *svm = test_data; in guest_code() local
98 struct vmcb *vmcb = svm->vmcb; in guest_code()
100 run_guest(vmcb, svm->vmcb_gpa); in guest_code()
H A Dnested_close_kvm_test.c48 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument
53 generic_svm_setup(svm, l2_guest_code, in l1_svm_code()
56 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code()
/linux/tools/testing/selftests/kvm/lib/x86/
H A Dsvm.c34 struct svm_test_data *svm = addr_gva2hva(vm, svm_gva); in vcpu_alloc_svm() local
36 svm->vmcb = (void *)vm_alloc_page(vm); in vcpu_alloc_svm()
37 svm->vmcb_hva = addr_gva2hva(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm()
38 svm->vmcb_gpa = addr_gva2gpa(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm()
40 svm->save_area = (void *)vm_alloc_page(vm); in vcpu_alloc_svm()
41 svm->save_area_hva = addr_gva2hva(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm()
42 svm->save_area_gpa = addr_gva2gpa(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm()
44 svm->msr = (void *)vm_alloc_page(vm); in vcpu_alloc_svm()
45 svm->msr_hva = addr_gva2hva(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm()
46 svm->msr_gpa = addr_gva2gpa(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm()
[all …]
H A Dmemstress.c54 static void l1_svm_code(struct svm_test_data *svm, u64 vcpu_id) in l1_svm_code() argument
62 generic_svm_setup(svm, memstress_l2_guest_entry, rsp); in l1_svm_code()
64 run_guest(svm->vmcb, svm->vmcb_gpa); in l1_svm_code()
65 GUEST_ASSERT_EQ(svm->vmcb->control.exit_code, SVM_EXIT_VMMCALL); in l1_svm_code()
/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()
169 if (!cli->svm.svmm) { in nouveau_svmm_bind()
186 nouveau_dmem_migrate_vma(cli->drm, cli->svm.svmm, vma, addr, in nouveau_svmm_bind()
210 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
211 ivmm = nouveau_ivmm_find(svmm->vmm->cli->drm->svm, inst); in nouveau_svmm_part()
216 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
231 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
232 list_add(&ivmm->head, &svmm->vmm->cli->drm->svm->inst); in nouveau_svmm_join()
233 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
[all …]
/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 …]
/linux/drivers/gpu/drm/xe/
H A Dxe_svm.c57 return force_smem ? NULL : vm->svm.peer.owner; in xe_svm_private_page_owner()
83 return container_of(gpusvm, struct xe_vm, svm.gpusvm); in gpusvm_to_vm()
139 spin_lock(&vm->svm.garbage_collector.lock); in xe_svm_garbage_collector_add_range()
142 &vm->svm.garbage_collector.range_list); in xe_svm_garbage_collector_add_range()
143 spin_unlock(&vm->svm.garbage_collector.lock); in xe_svm_garbage_collector_add_range()
145 queue_work(xe->usm.pf_wq, &vm->svm.garbage_collector.work); in xe_svm_garbage_collector_add_range()
211 drm_gpusvm_range_unmap_pages(&vm->svm.gpusvm, r, &ctx); in xe_svm_range_notifier_event_end()
313 drm_gpusvm_range_remove(&vm->svm.gpusvm, &range->base); in __xe_svm_garbage_collector()
392 spin_lock(&vm->svm.garbage_collector.lock); in xe_svm_garbage_collector()
393 range = list_first_entry_or_null(&vm->svm.garbage_collector.range_list, in xe_svm_garbage_collector()
[all …]
/linux/tools/testing/vsock/
H A Dvsock_perf.c104 struct sockaddr_vm svm; in vsock_connect() member
106 .svm = { in vsock_connect()
121 if (connect(fd, &addr.sa, sizeof(addr.svm)) < 0) { in vsock_connect()
147 struct sockaddr_vm svm; in run_receiver() member
149 .svm = { in run_receiver()
157 struct sockaddr_vm svm; in run_receiver() member
160 socklen_t clientaddr_len = sizeof(clientaddr.svm); in run_receiver()
173 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) in run_receiver()

123