| /linux-6.15/tools/testing/selftests/kvm/x86/ |
| H A D | private_mem_conversions_test.c | 48 pattern, gpa + i, mem[i]); in memcmp_h() 148 memset((void *)gpa, p1, size); in guest_test_explicit_conversion() 172 memcmp_g(gpa, p2, size); in guest_test_explicit_conversion() 173 if (gpa > base_gpa) in guest_test_explicit_conversion() 176 memcmp_g(gpa + size, init_p, in guest_test_explicit_conversion() 203 memcmp_g(gpa, p4, size); in guest_test_explicit_conversion() 256 memcmp_g(gpa, init_p, size); in guest_test_punch_hole() 266 guest_punch_hole(gpa, size); in guest_test_punch_hole() 267 memcmp_g(gpa, 0, size); in guest_test_punch_hole() 340 uint64_t gpa = uc.args[1]; in __test_mem_conversions() local [all …]
|
| H A D | smaller_maxphyaddr_emulation_test.c | 52 uint64_t gpa; in main() local 69 gpa = vm_phy_pages_alloc(vm, MEM_REGION_SIZE / PAGE_SIZE, in main() 71 TEST_ASSERT(gpa == MEM_REGION_GPA, "Failed vm_phy_pages_alloc"); in main()
|
| /linux-6.15/tools/testing/selftests/kvm/ |
| H A D | mmu_stress_test.c | 25 uint64_t gpa; in guest_code() local 29 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 30 vcpu_arch_put_guest(*((volatile uint64_t *)gpa), gpa); in guest_code() 34 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 52 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 58 vcpu_arch_put_guest(*((volatile uint64_t *)gpa), gpa); in guest_code() 70 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 71 vcpu_arch_put_guest(*((volatile uint64_t *)gpa), gpa); in guest_code() 351 gpa = 0; in main() 365 __virt_pg_map(vm, gpa + i, gpa + i, PG_LEVEL_1G); in main() [all …]
|
| H A D | memslot_perf_test.c | 198 gpa -= MEM_GPA; in vm_gpa2hva() 200 gpage = gpa / guest_page_size; in vm_gpa2hva() 201 pgoffs = gpa % guest_page_size; in vm_gpa2hva() 334 uint64_t gpa; in prepare_vm() local 341 TEST_ASSERT(gpa == guest_addr, in prepare_vm() 640 uint64_t gpa, ctr; in test_memslot_do_unmap() local 648 hva = vm_gpa2hva(data, gpa, &npages); in test_memslot_do_unmap() 654 hva, gpa); in test_memslot_do_unmap() 656 gpa += npages * guest_page_size; in test_memslot_do_unmap() 665 uint64_t gpa; in test_memslot_map_unmap_check() local [all …]
|
| H A D | memslot_modification_stress_test.c | 60 uint64_t gpa; in add_remove_memslot() local 67 gpa = memstress_args.gpa - pages * vm->page_size; in add_remove_memslot() 71 vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, gpa, in add_remove_memslot()
|
| /linux-6.15/arch/powerpc/kvm/ |
| H A D | book3s_64_mmu_radix.c | 149 u64 pte, base, gpa; in kvmppc_mmu_walk_radix_tree() local 215 gpte->raddr = gpa; in kvmppc_mmu_walk_radix_tree() 1162 unsigned long gpa; in kvmppc_radix_flush_memslot() local 1178 gpa += PAGE_SIZE; in kvmppc_radix_flush_memslot() 1246 unsigned long gpa; member 1324 gpa = p->gpa; in debugfs_radix_read() 1329 gpa = 0; in debugfs_radix_read() 1367 gpa = (gpa & P4D_MASK) + P4D_SIZE; in debugfs_radix_read() 1374 gpa = (gpa & PUD_MASK) + PUD_SIZE; in debugfs_radix_read() 1386 gpa = (gpa & PMD_MASK) + PMD_SIZE; in debugfs_radix_read() [all …]
|
| H A D | book3s_hv_uvmem.c | 234 unsigned long gpa; member 569 gpa, 0, page_shift); in __kvmppc_svm_page_out() 645 PAGE_SHIFT, kvm, pvt->gpa, NULL)) in kvmppc_uvmem_drop_pages() 647 pvt->gpa, addr); in kvmppc_uvmem_drop_pages() 721 pvt->gpa = gpa; in kvmppc_uvmem_get_page() 770 dpage = kvmppc_uvmem_get_page(gpa, kvm); in kvmppc_svm_page_in() 781 gpa, 0, page_shift); in kvmppc_svm_page_in() 884 unsigned long gfn = gpa >> page_shift; in kvmppc_share_page() 942 unsigned long gfn = gpa >> page_shift; in kvmppc_h_svm_page_in() 1004 pvt->kvm, pvt->gpa, vmf->page)) in kvmppc_uvmem_migrate_to_ram() [all …]
|
| /linux-6.15/virt/kvm/ |
| H A D | pfncache.c | 64 offset_in_page(gpa); in kvm_gpc_is_valid_len() 166 .gfn = gpa_to_gfn(gpc->gpa), in hva_to_pfn_retry() 283 if (kvm_is_error_gpa(gpa)) { in __kvm_gpc_refresh() 286 gpc->gpa = INVALID_GPA; in __kvm_gpc_refresh() 295 page_offset = offset_in_page(gpa); in __kvm_gpc_refresh() 297 if (gpc->gpa != gpa || gpc->generation != slots->generation || in __kvm_gpc_refresh() 299 gfn_t gfn = gpa_to_gfn(gpa); in __kvm_gpc_refresh() 301 gpc->gpa = gpa; in __kvm_gpc_refresh() 392 gpc->gpa = INVALID_GPA; in kvm_gpc_init() 424 return __kvm_gpc_refresh(gpc, gpa, uhva); in __kvm_gpc_activate() [all …]
|
| /linux-6.15/arch/s390/kvm/ |
| H A 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, 371 int write_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data, in write_guest_abs() argument 374 return kvm_write_guest(vcpu->kvm, gpa, data, len); in write_guest_abs() 394 int read_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data, in read_guest_abs() argument [all …]
|
| H A D | vsie.c | 756 gpa_t gpa; in pin_blocks() local 762 if (gpa) { in pin_blocks() 763 if (gpa < 2 * PAGE_SIZE) in pin_blocks() 777 vsie_page->sca_gpa = gpa; in pin_blocks() 784 if (gpa < 2 * PAGE_SIZE) { in pin_blocks() 800 if (gpa < 2 * PAGE_SIZE) { in pin_blocks() 813 vsie_page->gvrd_gpa = gpa; in pin_blocks() 819 if (gpa < 2 * PAGE_SIZE) { in pin_blocks() 839 if (!gpa || gpa < 2 * PAGE_SIZE) { in pin_blocks() 870 gpa_t gpa) in unpin_scb() argument [all …]
|
| H A D | gaccess.c | 620 *gpa = raddr.addr; in guest_translate() 790 unsigned long gpa; in guest_range_to_gpas() local 817 *gpas++ = gpa; in guest_range_to_gpas() 851 gfn = gpa >> PAGE_SHIFT; in access_guest_page_with_key() 863 hva += offset_in_page(gpa); in access_guest_page_with_key() 890 gpa += fragment_len; in access_guest_abs_with_key() 980 unsigned long gpa; in access_guest_real() local 1024 gfn_t gfn = gpa_to_gfn(gpa); in cmpxchg_guest_abs_with_key() 1030 if (!IS_ALIGNED(gpa, len)) in cmpxchg_guest_abs_with_key() 1044 hva += offset_in_page(gpa); in cmpxchg_guest_abs_with_key() [all …]
|
| /linux-6.15/tools/testing/selftests/kvm/lib/ |
| H A D | memstress.c | 108 vcpu_args->gpa = args->gpa + (i * vcpu_memory_bytes); in memstress_setup_vcpus() 113 vcpu_args->gpa = args->gpa; in memstress_setup_vcpus() 119 i, vcpu_args->gpa, vcpu_args->gpa + in memstress_setup_vcpus() 197 args->gpa = (region_end_gfn - guest_num_pages - 1) * args->guest_page_size; in memstress_create_vm() 198 args->gpa = align_down(args->gpa, backing_src_pagesz); in memstress_create_vm() 201 args->gpa = align_down(args->gpa, 1 << 20); in memstress_create_vm() 205 args->gpa, args->gpa + args->size); in memstress_create_vm() 210 vm_paddr_t region_start = args->gpa + region_pages * args->guest_page_size * i; in memstress_create_vm() 218 virt_map(vm, guest_test_virt_mem, args->gpa, guest_num_pages); in memstress_create_vm()
|
| H A D | kvm_util.c | 900 uint64_t gpa, uint64_t size, void *hva) in __vm_set_user_memory_region() argument 905 .guest_phys_addr = gpa, in __vm_set_user_memory_region() 927 uint64_t gpa, uint64_t size, void *hva, in __vm_set_user_memory_region2() argument 933 .guest_phys_addr = gpa, in __vm_set_user_memory_region2() 946 uint64_t gpa, uint64_t size, void *hva, in vm_set_user_memory_region2() argument 1267 uint64_t gpa, len; in vm_guest_mem_fallocate() local 1271 for (gpa = base; gpa < end; gpa += len) { in vm_guest_mem_fallocate() 1274 region = userspace_mem_region_find(vm, gpa, gpa); in vm_guest_mem_fallocate() 1608 gpa = vm_untag_gpa(vm, gpa); in addr_gpa2hva() 1610 region = userspace_mem_region_find(vm, gpa, gpa); in addr_gpa2hva() [all …]
|
| /linux-6.15/arch/x86/include/asm/uv/ |
| H A D | uv_hub.h | 461 uv_gpa_in_mmr_space(unsigned long gpa) in uv_gpa_in_mmr_space() argument 463 return (gpa >> 62) == 0x3UL; in uv_gpa_in_mmr_space() 475 gpa = ((gpa << uv_hub_info->m_shift) >> uv_hub_info->m_shift) | in uv_gpa_to_soc_phys_ram() 476 ((gpa >> uv_hub_info->n_lshift) << uv_hub_info->m_val); in uv_gpa_to_soc_phys_ram() 478 paddr = gpa & uv_hub_info->gpa_mask; in uv_gpa_to_soc_phys_ram() 490 return gpa >> n_lshift; in uv_gpa_to_gnode() 492 return uv_gam_range(gpa)->nasid >> 1; in uv_gpa_to_gnode() 496 static inline int uv_gpa_to_pnode(unsigned long gpa) in uv_gpa_to_pnode() argument 498 return uv_gpa_to_gnode(gpa) & uv_hub_info->pnode_mask; in uv_gpa_to_pnode() 507 return (gpa << m_shift) >> m_shift; in uv_gpa_to_offset() [all …]
|
| /linux-6.15/arch/x86/kvm/mmu/ |
| H A D | page_track.h | 30 void __kvm_page_track_write(struct kvm *kvm, gpa_t gpa, const u8 *new, int bytes); 41 static inline void __kvm_page_track_write(struct kvm *kvm, gpa_t gpa, in __kvm_page_track_write() argument 50 static inline void kvm_page_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, in kvm_page_track_write() argument 53 __kvm_page_track_write(vcpu->kvm, gpa, new, bytes); in kvm_page_track_write() 55 kvm_mmu_track_write(vcpu, gpa, new, bytes); in kvm_page_track_write()
|
| /linux-6.15/drivers/gpu/drm/i915/gvt/ |
| H A D | page_track.c | 159 int intel_vgpu_page_track_handler(struct intel_vgpu *vgpu, u64 gpa, in intel_vgpu_page_track_handler() argument 165 page_track = intel_vgpu_find_page_track(vgpu, gpa >> PAGE_SHIFT); in intel_vgpu_page_track_handler() 171 intel_gvt_page_track_remove(vgpu, gpa >> PAGE_SHIFT); in intel_vgpu_page_track_handler() 173 ret = page_track->handler(page_track, gpa, data, bytes); in intel_vgpu_page_track_handler() 175 gvt_err("guest page write error, gpa %llx\n", gpa); in intel_vgpu_page_track_handler()
|
| /linux-6.15/arch/riscv/kvm/ |
| H A 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() 357 gpa_t gpa, gpa_t gpsz, in kvm_riscv_hfence_gvma_vmid_gpa() argument 364 data.addr = gpa; in kvm_riscv_hfence_gvma_vmid_gpa()
|
| H A D | mmu.c | 179 gpa_t gpa, phys_addr_t hpa, in gstage_map_page() argument 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() 389 gstage_unmap_range(kvm, gpa, size, false); in kvm_riscv_gstage_iounmap() 425 gpa_t gpa = slot->base_gfn << PAGE_SHIFT; in kvm_arch_flush_shadow_memslot() local 429 gstage_unmap_range(kvm, gpa, size, false); in kvm_arch_flush_shadow_memslot() 510 gpa_t gpa = base_gpa + (vm_start - hva); in kvm_arch_prepare_memory_region() local 522 ret = kvm_riscv_gstage_ioremap(kvm, gpa, pa, in kvm_arch_prepare_memory_region() 591 gpa_t gpa, unsigned long hva, bool is_write) in kvm_riscv_gstage_map() argument [all …]
|
| /linux-6.15/arch/loongarch/kvm/ |
| H A D | tlb.c | 24 void kvm_flush_tlb_gpa(struct kvm_vcpu *vcpu, unsigned long gpa) in kvm_flush_tlb_gpa() argument 27 gpa &= (PAGE_MASK << 1); in kvm_flush_tlb_gpa() 28 invtlb(INVTLB_GID_ADDR, read_csr_gstat() & CSR_GSTAT_GID, gpa); in kvm_flush_tlb_gpa()
|
| H A D | mmu.c | 528 gpa_t gpa = range->start << PAGE_SHIFT; in kvm_test_age_gfn() local 529 kvm_pte_t *ptep = kvm_populate_gpa(kvm, NULL, gpa, 0); in kvm_test_age_gfn() 556 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_map_page_fast() 563 ptep = kvm_populate_gpa(kvm, NULL, gpa, 0); in kvm_map_page_fast() 772 static int kvm_map_page(struct kvm_vcpu *vcpu, unsigned long gpa, bool write) in kvm_map_page() argument 779 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_map_page() 787 err = kvm_map_page_fast(vcpu, gpa, write); in kvm_map_page() 875 ptep = kvm_populate_gpa(kvm, NULL, gpa, 0); in kvm_map_page() 887 ptep = kvm_populate_gpa(kvm, memcache, gpa, level); in kvm_map_page() 919 ret = kvm_map_page(vcpu, gpa, write); in kvm_handle_mm_fault() [all …]
|
| /linux-6.15/arch/x86/kvm/ |
| H A D | cpuid.h | 44 static inline bool kvm_vcpu_is_legal_gpa(struct kvm_vcpu *vcpu, gpa_t gpa) in kvm_vcpu_is_legal_gpa() argument 46 return !(gpa & vcpu->arch.reserved_gpa_bits); in kvm_vcpu_is_legal_gpa() 50 gpa_t gpa, gpa_t alignment) in kvm_vcpu_is_legal_aligned_gpa() argument 52 return IS_ALIGNED(gpa, alignment) && kvm_vcpu_is_legal_gpa(vcpu, gpa); in kvm_vcpu_is_legal_aligned_gpa() 55 static inline bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa) in page_address_valid() argument 57 return kvm_vcpu_is_legal_aligned_gpa(vcpu, gpa, PAGE_SIZE); in page_address_valid()
|
| H A D | mmu.h | 102 void kvm_mmu_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, const u8 *new, 290 gpa_t translate_nested_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u64 access, 295 gpa_t gpa, u64 access, in kvm_translate_gpa() argument 299 return gpa; in kvm_translate_gpa() 300 return translate_nested_gpa(vcpu, gpa, access, exception); in kvm_translate_gpa() 313 static inline bool kvm_is_addr_direct(struct kvm *kvm, gpa_t gpa) in kvm_is_addr_direct() argument 317 return !gpa_direct_bits || (gpa & gpa_direct_bits); in kvm_is_addr_direct()
|
| /linux-6.15/include/trace/events/ |
| H A D | kvm.h | 214 TP_PROTO(int type, int len, u64 gpa, void *val), 215 TP_ARGS(type, len, gpa, val), 220 __field( u64, gpa ) 227 __entry->gpa = gpa; 236 __entry->len, __entry->gpa, __entry->val) 249 TP_PROTO(int type, int len, u64 gpa, void *val), 250 TP_ARGS(type, len, gpa, val), 255 __field( u64, gpa ) 262 __entry->gpa = gpa; 271 __entry->len, __entry->gpa, __entry->val)
|
| /linux-6.15/tools/testing/selftests/kvm/include/ |
| H A D | kvm_util.h | 386 .address = gpa, in vm_set_memory_attributes() 411 vm_set_memory_attributes(vm, gpa, size, 0); in vm_mem_set_shared() 420 vm_guest_mem_fallocate(vm, gpa, size, true); in vm_guest_mem_punch_hole() 426 vm_guest_mem_fallocate(vm, gpa, size, false); in vm_guest_mem_allocate() 575 uint64_t gpa, uint64_t size, void *hva); 577 uint64_t gpa, uint64_t size, void *hva); 579 uint64_t gpa, uint64_t size, void *hva, 582 uint64_t gpa, uint64_t size, void *hva, 619 void *addr_gpa2hva(struct kvm_vm *vm, vm_paddr_t gpa); 622 void *addr_gpa2alias(struct kvm_vm *vm, vm_paddr_t gpa); [all …]
|
| /linux-6.15/include/linux/ |
| H A D | kvm_host.h | 154 return gpa == INVALID_GPA; in kvm_is_error_gpa() 318 gpa_t gpa; member 1317 gpa_t gpa, unsigned long len); 1330 #define kvm_get_guest(kvm, gpa, v) \ argument 1332 gpa_t __gpa = gpa; \ 1352 #define kvm_put_guest(kvm, gpa, v) \ argument 1354 gpa_t __gpa = gpa; \ 1887 static inline gfn_t gpa_to_gfn(gpa_t gpa) in gpa_to_gfn() argument 1889 return (gfn_t)(gpa >> PAGE_SHIFT); in gpa_to_gfn() 2478 gpa_t gpa, gpa_t size, in kvm_prepare_memory_fault_exit() argument [all …]
|