/Linux-v6.1/arch/powerpc/kvm/ |
D | book3s_64_mmu_radix.c | 143 u64 pte, base, gpa; in kvmppc_mmu_walk_radix_tree() local 198 gpa = pte & 0x01fffffffffff000ul; in kvmppc_mmu_walk_radix_tree() 199 if (gpa & ((1ul << offset) - 1)) in kvmppc_mmu_walk_radix_tree() 201 gpa |= eaddr & ((1ul << offset) - 1); in kvmppc_mmu_walk_radix_tree() 209 gpte->raddr = gpa; in kvmppc_mmu_walk_radix_tree() 417 void kvmppc_unmap_pte(struct kvm *kvm, pte_t *pte, unsigned long gpa, in kvmppc_unmap_pte() argument 424 unsigned long gfn = gpa >> PAGE_SHIFT; in kvmppc_unmap_pte() 428 old = kvmppc_radix_update_pte(kvm, pte, ~0UL, 0, gpa, shift); in kvmppc_unmap_pte() 429 kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); in kvmppc_unmap_pte() 448 gpa &= ~(page_size - 1); in kvmppc_unmap_pte() [all …]
|
D | book3s_hv_uvmem.c | 234 unsigned long gpa; member 511 struct kvm *kvm, unsigned long gpa, struct page *fault_page) in __kvmppc_svm_page_out() argument 531 if (!kvmppc_gfn_is_uvmem_pfn(gpa >> page_shift, kvm, NULL)) in __kvmppc_svm_page_out() 564 gpa, 0, page_shift); in __kvmppc_svm_page_out() 584 struct kvm *kvm, unsigned long gpa, in kvmppc_svm_page_out() argument 590 ret = __kvmppc_svm_page_out(vma, start, end, page_shift, kvm, gpa, in kvmppc_svm_page_out() 640 PAGE_SHIFT, kvm, pvt->gpa, NULL)) in kvmppc_uvmem_drop_pages() 642 pvt->gpa, addr); in kvmppc_uvmem_drop_pages() 690 static struct page *kvmppc_uvmem_get_page(unsigned long gpa, struct kvm *kvm) in kvmppc_uvmem_get_page() argument 714 kvmppc_gfn_secure_uvmem_pfn(gpa >> PAGE_SHIFT, uvmem_pfn, kvm); in kvmppc_uvmem_get_page() [all …]
|
/Linux-v6.1/tools/testing/selftests/kvm/ |
D | max_guest_memory_test.c | 22 uint64_t gpa; in guest_code() local 24 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 25 *((volatile uint64_t *)gpa) = gpa; in guest_code() 95 uint64_t gpa, nr_bytes; in spawn_workers() local 109 for (i = 0, gpa = start_gpa; i < nr_vcpus; i++, gpa += nr_bytes) { in spawn_workers() 111 info[i].start_gpa = gpa; in spawn_workers() 112 info[i].end_gpa = gpa + nr_bytes; in spawn_workers() 170 uint64_t max_gpa, gpa, slot_size, max_mem, i; in main() local 235 gpa = 0; in main() 237 gpa = start_gpa + ((slot - first_slot) * slot_size); in main() [all …]
|
D | memslot_perf_test.c | 190 static void *vm_gpa2hva(struct vm_data *data, uint64_t gpa, uint64_t *rempages) in vm_gpa2hva() argument 196 TEST_ASSERT(gpa >= MEM_GPA, "Too low gpa to translate"); in vm_gpa2hva() 197 TEST_ASSERT(gpa < MEM_GPA + data->npages * 4096, in vm_gpa2hva() 199 gpa -= MEM_GPA; in vm_gpa2hva() 201 gpage = gpa / 4096; in vm_gpa2hva() 202 pgoffs = gpa % 4096; in vm_gpa2hva() 302 uint64_t gpa; in prepare_vm() local 308 gpa = vm_phy_pages_alloc(data->vm, npages, guest_addr, in prepare_vm() 310 TEST_ASSERT(gpa == guest_addr, in prepare_vm() 595 uint64_t gpa, ctr; in test_memslot_do_unmap() local [all …]
|
D | memslot_modification_stress_test.c | 71 uint64_t gpa; in add_remove_memslot() local 78 gpa = perf_test_args.gpa - pages * vm->page_size; in add_remove_memslot() 82 vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, gpa, in add_remove_memslot()
|
/Linux-v6.1/tools/testing/selftests/kvm/lib/aarch64/ |
D | ucall.c | 11 static bool ucall_mmio_init(struct kvm_vm *vm, vm_paddr_t gpa) in ucall_mmio_init() argument 13 if (kvm_userspace_memory_region_find(vm, gpa, gpa + 1)) in ucall_mmio_init() 16 virt_pg_map(vm, gpa, gpa); in ucall_mmio_init() 18 ucall_exit_mmio_addr = (vm_vaddr_t *)gpa; in ucall_mmio_init() 26 vm_paddr_t gpa, start, end, step, offset; in ucall_init() local 31 gpa = (vm_paddr_t)arg; in ucall_init() 32 ret = ucall_mmio_init(vm, gpa); in ucall_init() 33 TEST_ASSERT(ret, "Can't set ucall mmio address to %lx", gpa); in ucall_init()
|
/Linux-v6.1/tools/testing/selftests/kvm/lib/ |
D | perf_test_util.c | 93 vcpu_args->gpa = pta->gpa + (i * vcpu_memory_bytes); in perf_test_setup_vcpus() 98 vcpu_args->gpa = pta->gpa; in perf_test_setup_vcpus() 104 i, vcpu_args->gpa, vcpu_args->gpa + in perf_test_setup_vcpus() 181 pta->gpa = (region_end_gfn - guest_num_pages - 1) * pta->guest_page_size; in perf_test_create_vm() 182 pta->gpa = align_down(pta->gpa, backing_src_pagesz); in perf_test_create_vm() 185 pta->gpa = align_down(pta->gpa, 1 << 20); in perf_test_create_vm() 189 pta->gpa, pta->gpa + pta->size); in perf_test_create_vm() 194 vm_paddr_t region_start = pta->gpa + region_pages * pta->guest_page_size * i; in perf_test_create_vm() 202 virt_map(vm, guest_test_virt_mem, pta->gpa, guest_num_pages); in perf_test_create_vm()
|
/Linux-v6.1/arch/s390/kvm/ |
D | gaccess.h | 152 unsigned long gpa = gra + kvm_s390_get_prefix(vcpu); in write_guest_lc() local 154 return kvm_write_guest(vcpu->kvm, gpa, data, len); in write_guest_lc() 178 unsigned long gpa = gra + kvm_s390_get_prefix(vcpu); in read_guest_lc() local 180 return kvm_read_guest(vcpu->kvm, gpa, data, len); in read_guest_lc() 190 unsigned long *gpa, enum gacc_mode mode, 196 int check_gpa_range(struct kvm *kvm, unsigned long gpa, unsigned long length, 199 int access_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, void *data, 368 int write_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data, in write_guest_abs() argument 371 return kvm_write_guest(vcpu->kvm, gpa, data, len); in write_guest_abs() 391 int read_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data, in read_guest_abs() argument [all …]
|
D | vsie.c | 652 static int pin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t *hpa) in pin_guest_page() argument 656 page = gfn_to_page(kvm, gpa_to_gfn(gpa)); in pin_guest_page() 659 *hpa = (hpa_t) page_to_virt(page) + (gpa & ~PAGE_MASK); in pin_guest_page() 664 static void unpin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t hpa) in unpin_guest_page() argument 668 mark_page_dirty(kvm, gpa_to_gfn(gpa)); in unpin_guest_page() 733 gpa_t gpa; in pin_blocks() local 736 gpa = READ_ONCE(scb_o->scaol) & ~0xfUL; in pin_blocks() 738 gpa |= (u64) READ_ONCE(scb_o->scaoh) << 32; in pin_blocks() 739 if (gpa) { in pin_blocks() 740 if (gpa < 2 * PAGE_SIZE) in pin_blocks() [all …]
|
D | gaccess.c | 606 static int deref_table(struct kvm *kvm, unsigned long gpa, unsigned long *val) in deref_table() argument 608 return kvm_read_guest(kvm, gpa, val, sizeof(*val)); in deref_table() 633 unsigned long *gpa, const union asce asce, in guest_translate() argument 792 *gpa = raddr.addr; in guest_translate() 816 enum gacc_mode mode, gpa_t gpa) in vm_check_access_key() argument 826 hva = gfn_to_hva(kvm, gpa_to_gfn(gpa)); in vm_check_access_key() 879 enum gacc_mode mode, union asce asce, gpa_t gpa, in vcpu_check_access_key() argument 893 hva = gfn_to_hva(vcpu->kvm, gpa_to_gfn(gpa)); in vcpu_check_access_key() 962 unsigned long gpa; in guest_range_to_gpas() local 972 rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot); in guest_range_to_gpas() [all …]
|
/Linux-v6.1/virt/kvm/ |
D | pfncache.c | 80 gpa_t gpa, unsigned long len) in kvm_gfn_to_pfn_cache_check() argument 87 if ((gpa & ~PAGE_MASK) + len > PAGE_SIZE) in kvm_gfn_to_pfn_cache_check() 90 if (gpc->gpa != gpa || gpc->generation != slots->generation || in kvm_gfn_to_pfn_cache_check() 224 gpc->khva = new_khva + (gpc->gpa & ~PAGE_MASK); in hva_to_pfn_retry() 242 gpa_t gpa, unsigned long len) in kvm_gfn_to_pfn_cache_refresh() argument 245 unsigned long page_offset = gpa & ~PAGE_MASK; in kvm_gfn_to_pfn_cache_refresh() 278 if (gpc->gpa != gpa || gpc->generation != slots->generation || in kvm_gfn_to_pfn_cache_refresh() 280 gfn_t gfn = gpa_to_gfn(gpa); in kvm_gfn_to_pfn_cache_refresh() 282 gpc->gpa = gpa; in kvm_gfn_to_pfn_cache_refresh() 374 gpa_t gpa, unsigned long len) in kvm_gpc_activate() argument [all …]
|
/Linux-v6.1/arch/x86/include/asm/uv/ |
D | uv_hub.h | 460 uv_gpa_in_mmr_space(unsigned long gpa) in uv_gpa_in_mmr_space() argument 462 return (gpa >> 62) == 0x3UL; in uv_gpa_in_mmr_space() 466 static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa) in uv_gpa_to_soc_phys_ram() argument 474 gpa = ((gpa << uv_hub_info->m_shift) >> uv_hub_info->m_shift) | in uv_gpa_to_soc_phys_ram() 475 ((gpa >> uv_hub_info->n_lshift) << uv_hub_info->m_val); in uv_gpa_to_soc_phys_ram() 477 paddr = gpa & uv_hub_info->gpa_mask; in uv_gpa_to_soc_phys_ram() 484 static inline unsigned long uv_gpa_to_gnode(unsigned long gpa) in uv_gpa_to_gnode() argument 489 return gpa >> n_lshift; in uv_gpa_to_gnode() 491 return uv_gam_range(gpa)->nasid >> 1; in uv_gpa_to_gnode() 495 static inline int uv_gpa_to_pnode(unsigned long gpa) in uv_gpa_to_pnode() argument [all …]
|
/Linux-v6.1/arch/x86/kvm/ |
D | cpuid.h | 45 static inline bool kvm_vcpu_is_legal_gpa(struct kvm_vcpu *vcpu, gpa_t gpa) in kvm_vcpu_is_legal_gpa() argument 47 return !(gpa & vcpu->arch.reserved_gpa_bits); in kvm_vcpu_is_legal_gpa() 50 static inline bool kvm_vcpu_is_illegal_gpa(struct kvm_vcpu *vcpu, gpa_t gpa) in kvm_vcpu_is_illegal_gpa() argument 52 return !kvm_vcpu_is_legal_gpa(vcpu, gpa); in kvm_vcpu_is_illegal_gpa() 56 gpa_t gpa, gpa_t alignment) in kvm_vcpu_is_legal_aligned_gpa() argument 58 return IS_ALIGNED(gpa, alignment) && kvm_vcpu_is_legal_gpa(vcpu, gpa); in kvm_vcpu_is_legal_aligned_gpa() 61 static inline bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa) in page_address_valid() argument 63 return kvm_vcpu_is_legal_aligned_gpa(vcpu, gpa, PAGE_SIZE); in page_address_valid()
|
D | xen.c | 37 gpa_t gpa = gfn_to_gpa(gfn); in kvm_xen_shared_info_init() local 50 ret = kvm_gpc_activate(kvm, gpc, NULL, KVM_HOST_USES_PFN, gpa, in kvm_xen_shared_info_init() 221 while (!kvm_gfn_to_pfn_cache_check(v->kvm, gpc, gpc->gpa, in kvm_xen_update_runstate_guest() 229 if (kvm_gfn_to_pfn_cache_refresh(v->kvm, gpc, gpc->gpa, user_len)) in kvm_xen_update_runstate_guest() 314 mark_page_dirty_in_slot(v->kvm, gpc->memslot, gpc->gpa >> PAGE_SHIFT); in kvm_xen_update_runstate_guest() 355 while (!kvm_gfn_to_pfn_cache_check(v->kvm, gpc, gpc->gpa, in kvm_xen_inject_pending_events() 359 if (kvm_gfn_to_pfn_cache_refresh(v->kvm, gpc, gpc->gpa, in kvm_xen_inject_pending_events() 397 mark_page_dirty_in_slot(v->kvm, gpc->memslot, gpc->gpa >> PAGE_SHIFT); in kvm_xen_inject_pending_events() 420 while (!kvm_gfn_to_pfn_cache_check(v->kvm, gpc, gpc->gpa, in __kvm_xen_has_interrupt() 435 if (kvm_gfn_to_pfn_cache_refresh(v->kvm, gpc, gpc->gpa, in __kvm_xen_has_interrupt() [all …]
|
/Linux-v6.1/arch/riscv/kvm/ |
D | tlb.c | 22 gpa_t gpa, gpa_t gpsz, in kvm_riscv_local_hfence_gvma_vmid_gpa() argument 34 for (pos = gpa; pos < (gpa + gpsz); pos += BIT(order)) in kvm_riscv_local_hfence_gvma_vmid_gpa() 39 for (pos = gpa; pos < (gpa + gpsz); pos += BIT(order)) in kvm_riscv_local_hfence_gvma_vmid_gpa() 50 void kvm_riscv_local_hfence_gvma_gpa(gpa_t gpa, gpa_t gpsz, in kvm_riscv_local_hfence_gvma_gpa() argument 62 for (pos = gpa; pos < (gpa + gpsz); pos += BIT(order)) in kvm_riscv_local_hfence_gvma_gpa() 67 for (pos = gpa; pos < (gpa + gpsz); pos += BIT(order)) in kvm_riscv_local_hfence_gvma_gpa() 331 gpa_t gpa, gpa_t gpsz, in kvm_riscv_hfence_gvma_vmid_gpa() argument 338 data.addr = gpa; in kvm_riscv_hfence_gvma_vmid_gpa()
|
D | mmu.c | 179 gpa_t gpa, phys_addr_t hpa, in gstage_map_page() argument 219 return gstage_set_pte(kvm, level, pcache, gpa, &new_pte); in gstage_map_page() 346 int kvm_riscv_gstage_ioremap(struct kvm *kvm, gpa_t gpa, in kvm_riscv_gstage_ioremap() argument 359 end = (gpa + size + PAGE_SIZE - 1) & PAGE_MASK; in kvm_riscv_gstage_ioremap() 362 for (addr = gpa; addr < end; addr += PAGE_SIZE) { in kvm_riscv_gstage_ioremap() 386 void kvm_riscv_gstage_iounmap(struct kvm *kvm, gpa_t gpa, unsigned long size) in kvm_riscv_gstage_iounmap() argument 389 gstage_unmap_range(kvm, gpa, size, false); in kvm_riscv_gstage_iounmap() 431 gpa_t gpa = slot->base_gfn << PAGE_SHIFT; in kvm_arch_flush_shadow_memslot() local 435 gstage_unmap_range(kvm, gpa, size, false); in kvm_arch_flush_shadow_memslot() 516 gpa_t gpa = base_gpa + (vm_start - hva); in kvm_arch_prepare_memory_region() local [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/gvt/ |
D | page_track.c | 159 int intel_vgpu_page_track_handler(struct intel_vgpu *vgpu, u64 gpa, in intel_vgpu_page_track_handler() argument 167 page_track = intel_vgpu_find_page_track(vgpu, gpa >> PAGE_SHIFT); in intel_vgpu_page_track_handler() 175 intel_gvt_page_track_remove(vgpu, gpa >> PAGE_SHIFT); in intel_vgpu_page_track_handler() 177 ret = page_track->handler(page_track, gpa, data, bytes); in intel_vgpu_page_track_handler() 179 gvt_err("guest page write error, gpa %llx\n", gpa); in intel_vgpu_page_track_handler()
|
D | page_track.h | 35 u64 gpa, void *data, int bytes); 56 int intel_vgpu_page_track_handler(struct intel_vgpu *vgpu, u64 gpa,
|
/Linux-v6.1/arch/riscv/include/asm/ |
D | kvm_host.h | 241 gpa_t gpa, gpa_t gpsz, 244 void kvm_riscv_local_hfence_gvma_gpa(gpa_t gpa, gpa_t gpsz, 270 gpa_t gpa, gpa_t gpsz, 288 int kvm_riscv_gstage_ioremap(struct kvm *kvm, gpa_t gpa, 291 void kvm_riscv_gstage_iounmap(struct kvm *kvm, gpa_t gpa, 295 gpa_t gpa, unsigned long hva, bool is_write);
|
/Linux-v6.1/arch/mips/kvm/ |
D | mmu.c | 450 gpa_t gpa = range->start << PAGE_SHIFT; in kvm_set_spte_gfn() local 452 pte_t *gpa_pte = kvm_mips_pte_for_gpa(kvm, NULL, gpa); in kvm_set_spte_gfn() 485 gpa_t gpa = range->start << PAGE_SHIFT; in kvm_test_age_gfn() local 486 pte_t *gpa_pte = kvm_mips_pte_for_gpa(kvm, NULL, gpa); in kvm_test_age_gfn() 511 static int _kvm_mips_map_page_fast(struct kvm_vcpu *vcpu, unsigned long gpa, in _kvm_mips_map_page_fast() argument 516 gfn_t gfn = gpa >> PAGE_SHIFT; in _kvm_mips_map_page_fast() 525 ptep = kvm_mips_pte_for_gpa(kvm, NULL, gpa); in _kvm_mips_map_page_fast() 587 static int kvm_mips_map_page(struct kvm_vcpu *vcpu, unsigned long gpa, in kvm_mips_map_page() argument 593 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_mips_map_page() 603 err = _kvm_mips_map_page_fast(vcpu, gpa, write_fault, out_entry, in kvm_mips_map_page() [all …]
|
/Linux-v6.1/arch/x86/kvm/vmx/ |
D | sgx.c | 73 gpa_t *gpa) in sgx_gva_to_gpa() argument 78 *gpa = kvm_mmu_gva_to_gpa_write(vcpu, gva, &ex); in sgx_gva_to_gpa() 80 *gpa = kvm_mmu_gva_to_gpa_read(vcpu, gva, &ex); in sgx_gva_to_gpa() 82 if (*gpa == INVALID_GPA) { in sgx_gva_to_gpa() 90 static int sgx_gpa_to_hva(struct kvm_vcpu *vcpu, gpa_t gpa, unsigned long *hva) in sgx_gpa_to_hva() argument 92 *hva = kvm_vcpu_gfn_to_hva(vcpu, PFN_DOWN(gpa)); in sgx_gpa_to_hva() 94 sgx_handle_emulation_failure(vcpu, gpa, 1); in sgx_gpa_to_hva() 98 *hva |= gpa & ~PAGE_MASK; in sgx_gpa_to_hva()
|
D | vmx_ops.h | 20 void invept_error(unsigned long ext, u64 eptp, gpa_t gpa); 293 static inline void __invept(unsigned long ext, u64 eptp, gpa_t gpa) in __invept() argument 296 u64 eptp, gpa; in __invept() member 297 } operand = {eptp, gpa}; in __invept() 299 vmx_asm2(invept, "r"(ext), "m"(operand), ext, eptp, gpa); in __invept()
|
/Linux-v6.1/tools/testing/selftests/kvm/lib/s390x/ |
D | processor.c | 49 void virt_arch_pg_map(struct kvm_vm *vm, uint64_t gva, uint64_t gpa) in virt_arch_pg_map() argument 62 TEST_ASSERT((gpa % vm->page_size) == 0, in virt_arch_pg_map() 66 TEST_ASSERT((gpa >> vm->page_shift) <= vm->max_gfn, in virt_arch_pg_map() 84 "WARNING: PTE for gpa=0x%"PRIx64" already set!\n", gpa); in virt_arch_pg_map() 85 entry[idx] = gpa; in virt_arch_pg_map()
|
/Linux-v6.1/drivers/misc/sgi-gru/ |
D | grufault.c | 253 int write, int atomic, unsigned long *gpa, int *pageshift) in gru_vtop() argument 279 *gpa = uv_soc_phys_ram_to_gpa(paddr); in gru_vtop() 316 unsigned long vaddr = 0, gpa; in gru_preload_tlb() local 332 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_preload_tlb() 333 if (ret || tfh_write_only(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_preload_tlb() 339 vaddr, asid, write, pageshift, gpa); in gru_preload_tlb() 363 unsigned long gpa = 0, vaddr = 0; in gru_try_dropin() local 413 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_try_dropin() 434 tfh_write_restart(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_try_dropin() 440 indexway, write, pageshift, gpa); in gru_try_dropin()
|
/Linux-v6.1/arch/arm64/include/asm/ |
D | kvm_mmu.h | 239 gpa_t gpa, void *data, unsigned long len) 242 int ret = kvm_read_guest(kvm, gpa, data, len); 249 static inline int kvm_write_guest_lock(struct kvm *kvm, gpa_t gpa, 253 int ret = kvm_write_guest(kvm, gpa, data, len);
|