/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | private_mem_conversions_test.c |
|
H A D | smaller_maxphyaddr_emulation_test.c |
|
/linux/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() 35 *((volatile uint64_t *)gpa); in guest_code() 52 for (gpa = start_gpa; gpa < end_gpa; gpa += stride) in guest_code() 54 asm volatile(".byte 0x48,0x89,0x00" :: "a"(gpa) : "memory"); /* mov %rax, (%rax) */ in guest_code() 56 asm volatile("str %0, [%0]" :: "r" (gpa) : "memory"); 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() [all …]
|
H A D | max_guest_memory_test.c |
|
H A D | memslot_perf_test.c | 188 static void *vm_gpa2hva(struct vm_data *data, uint64_t gpa, uint64_t *rempages) in vm_gpa2hva() argument 195 TEST_ASSERT(gpa >= MEM_GPA, "Too low gpa to translate"); in vm_gpa2hva() 196 TEST_ASSERT(gpa < MEM_GPA + data->npages * guest_page_size, in vm_gpa2hva() 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 340 gpa = vm_phy_pages_alloc(data->vm, npages, guest_addr, slot); in prepare_vm() 341 TEST_ASSERT(gpa == guest_addr, in prepare_vm() 640 uint64_t gpa, ctr; in test_memslot_do_unmap() 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()
|
H A D | pre_fault_memory_test.c | 33 static void pre_fault_memory(struct kvm_vcpu *vcpu, u64 gpa, u64 size, in pre_fault_memory() argument 37 .gpa = gpa, in pre_fault_memory()
|
/linux/virt/kvm/ |
H A D | pfncache.c | 60 static bool kvm_gpc_is_valid_len(gpa_t gpa, unsigned long uhva, in kvm_gpc_is_valid_len() argument 63 unsigned long offset = kvm_is_error_gpa(gpa) ? offset_in_page(uhva) : in kvm_gpc_is_valid_len() 64 offset_in_page(gpa); in kvm_gpc_is_valid_len() 84 if (!kvm_is_error_gpa(gpc->gpa) && gpc->generation != slots->generation) in kvm_gpc_check() 90 if (!kvm_gpc_is_valid_len(gpc->gpa, gpc->uhva, len)) in kvm_gpc_check() 166 .gfn = gpa_to_gfn(gpc->gpa), in hva_to_pfn_retry() 177 * Invalidate the cache prior to dropping gpc->lock, the gpa=>uhva in hva_to_pfn_retry() 179 * different task may not fail the gpa/uhva/generation checks. in hva_to_pfn_retry() 256 static int __kvm_gpc_refresh(struct gfn_to_pfn_cache *gpc, gpa_t gpa, unsigned long uhva) in __kvm_gpc_refresh() 266 /* Either gpa o in __kvm_gpc_refresh() 248 __kvm_gpc_refresh(struct gfn_to_pfn_cache * gpc,gpa_t gpa,unsigned long uhva) __kvm_gpc_refresh() argument 389 __kvm_gpc_activate(struct gfn_to_pfn_cache * gpc,gpa_t gpa,unsigned long uhva,unsigned long len) __kvm_gpc_activate() argument 419 kvm_gpc_activate(struct gfn_to_pfn_cache * gpc,gpa_t gpa,unsigned long len) kvm_gpc_activate() argument [all...] |
/linux/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, 209 int cmpxchg_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, int len, __uint128_t *old, 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() [all …]
|
H A D | vsie.c | 675 static int pin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t *hpa) in pin_guest_page() argument 679 page = gfn_to_page(kvm, gpa_to_gfn(gpa)); in pin_guest_page() 682 *hpa = (hpa_t)page_to_phys(page) + (gpa & ~PAGE_MASK); in pin_guest_page() 687 static void unpin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t hpa) in unpin_guest_page() argument 691 mark_page_dirty(kvm, gpa_to_gfn(gpa)); in unpin_guest_page() 756 gpa_t gpa; in pin_blocks() local 759 gpa = READ_ONCE(scb_o->scaol) & ~0xfUL; in pin_blocks() 761 gpa |= (u64) READ_ONCE(scb_o->scaoh) << 32; in pin_blocks() 762 if (gpa) { in pin_blocks() 763 if (gpa < 2 * PAGE_SIZE) in pin_blocks() [all …]
|
H A D | gaccess.c | 434 static int deref_table(struct kvm *kvm, unsigned long gpa, unsigned long *val) in deref_table() argument 436 return kvm_read_guest(kvm, gpa, val, sizeof(*val)); in deref_table() 461 unsigned long *gpa, const union asce asce, in guest_translate() argument 620 *gpa = raddr.addr; in guest_translate() 644 enum gacc_mode mode, gpa_t gpa) in vm_check_access_key() argument 654 hva = gfn_to_hva(kvm, gpa_to_gfn(gpa)); in vm_check_access_key() 707 enum gacc_mode mode, union asce asce, gpa_t gpa, in vcpu_check_access_key() argument 721 hva = gfn_to_hva(vcpu->kvm, gpa_to_gfn(gpa)); in vcpu_check_access_key() 790 unsigned long gpa; in guest_range_to_gpas() local 800 rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot); in guest_range_to_gpas() [all …]
|
/linux/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()
|
/linux/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() 467 static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa) in uv_gpa_to_soc_phys_ram() argument 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() 485 static inline unsigned long uv_gpa_to_gnode(unsigned long gpa) in uv_gpa_to_gnode() argument 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 [all …]
|
/linux/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/arch/x86/kvm/ |
H A 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() 51 gpa_t gpa, gpa_t alignment) in kvm_vcpu_is_legal_aligned_gpa() argument 53 return IS_ALIGNED(gpa, alignment) && kvm_vcpu_is_legal_gpa(vcpu, gpa); in kvm_vcpu_is_legal_aligned_gpa() 56 static inline bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa) in page_address_valid() argument 58 return kvm_vcpu_is_legal_aligned_gpa(vcpu, gpa, PAGE_SIZE); in page_address_valid()
|
/linux/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 | vcpu.c | 159 gpa_t gpa; in kvm_update_stolen_time() local 165 gpa = vcpu->arch.st.guest_addr; in kvm_update_stolen_time() 166 if (!(gpa & KVM_STEAL_PHYS_VALID)) in kvm_update_stolen_time() 169 gpa &= KVM_STEAL_PHYS_MASK; in kvm_update_stolen_time() 171 if (slots->generation != ghc->generation || gpa != ghc->gpa) { in kvm_update_stolen_time() 172 if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gpa, sizeof(*st))) { in kvm_update_stolen_time() 173 ghc->gpa = INVALID_GPA; in kvm_update_stolen_time() 196 mark_page_dirty_in_slot(vcpu->kvm, ghc->memslot, gpa_to_gfn(ghc->gpa)); in kvm_update_stolen_time() 1024 u64 gpa; in kvm_loongarch_pvtime_get_attr() local 1031 gpa = vcpu->arch.st.guest_addr; in kvm_loongarch_pvtime_get_attr() [all …]
|
/linux/tools/testing/selftests/kvm/include/ |
H A D | kvm_util.h | 377 static inline void vm_set_memory_attributes(struct kvm_vm *vm, uint64_t gpa, in vm_set_memory_attributes() argument 382 .address = gpa, in vm_set_memory_attributes() 398 static inline void vm_mem_set_private(struct kvm_vm *vm, uint64_t gpa, in vm_mem_set_private() argument 401 vm_set_memory_attributes(vm, gpa, size, KVM_MEMORY_ATTRIBUTE_PRIVATE); in vm_mem_set_private() 404 static inline void vm_mem_set_shared(struct kvm_vm *vm, uint64_t gpa, in vm_mem_set_shared() argument 407 vm_set_memory_attributes(vm, gpa, size, 0); in vm_mem_set_shared() 410 void vm_guest_mem_fallocate(struct kvm_vm *vm, uint64_t gpa, uint64_t size, 413 static inline void vm_guest_mem_punch_hole(struct kvm_vm *vm, uint64_t gpa, in vm_guest_mem_punch_hole() argument 416 vm_guest_mem_fallocate(vm, gpa, size, true); in vm_guest_mem_punch_hole() 419 static inline void vm_guest_mem_allocate(struct kvm_vm *vm, uint64_t gpa, in vm_guest_mem_allocate() argument 621 vm_untag_gpa(struct kvm_vm * vm,vm_paddr_t gpa) vm_untag_gpa() argument [all...] |
/linux/include/linux/ |
H A D | kvm_host.h | 152 static inline bool kvm_is_error_gpa(gpa_t gpa) in kvm_is_error_gpa() argument 154 return gpa == INVALID_GPA; in kvm_is_error_gpa() 317 gpa_t gpa; member 1300 int kvm_read_guest(struct kvm *kvm, gpa_t gpa, void *data, unsigned long len); 1308 int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data, 1316 gpa_t gpa, unsigned long len); 1329 #define kvm_get_guest(kvm, gpa, v) \ argument 1331 gpa_t __gpa = gpa; \ 1351 #define kvm_put_guest(kvm, gpa, v) \ argument 1353 gpa_t __gpa = gpa; \ [all …]
|
/linux/tools/testing/selftests/kvm/lib/s390x/ |
H A D | processor.c |
|
/linux/arch/arm64/kvm/vgic/ |
H A D | vgic-its.c | 832 gpa_t gpa = device->itt_addr + ite->event_id * ite_esz; in vgic_its_cmd_handle_discard() local 842 return vgic_its_write_entry_lock(its, gpa, 0ULL, ite); in vgic_its_cmd_handle_discard() 881 static bool __is_visible_gfn_locked(struct vgic_its *its, gpa_t gpa) in __is_visible_gfn_locked() argument 883 gfn_t gfn = gpa >> PAGE_SHIFT; in __is_visible_gfn_locked() 976 gpa_t gpa; in vgic_its_check_event_id() local 982 gpa = device->itt_addr + event_id * ite_esz; in vgic_its_check_event_id() 983 return __is_visible_gfn_locked(its, gpa); in vgic_its_check_event_id() 1192 gpa_t gpa; in vgic_its_cmd_handle_mapd() local 1194 if (!vgic_its_check_id(its, its->baser_device_table, device_id, &gpa)) in vgic_its_cmd_handle_mapd() 1215 return vgic_its_write_entry_lock(its, gpa, 0ULL, dte); in vgic_its_cmd_handle_mapd() [all …]
|
/linux/drivers/misc/sgi-gru/ |
H A 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/drivers/gpu/drm/i915/gvt/ |
H A 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/arch/x86/xen/ |
H A D | mmu_hvm.c | 42 a.gpa = __pa(mm->pgd); in xen_hvm_exit_mmap() 53 a.gpa = 0x00; in is_pagetable_dying_supported()
|
/linux/arch/arm64/include/asm/ |
H A D | kvm_mmu.h | 275 gpa_t gpa, void *data, unsigned long len) in kvm_read_guest_lock() 278 int ret = kvm_read_guest(kvm, gpa, data, len); in kvm_read_guest_lock() 285 static inline int kvm_write_guest_lock(struct kvm *kvm, gpa_t gpa, in kvm_write_guest_lock() 289 int ret = kvm_write_guest(kvm, gpa, data, len); in kvm_write_guest_lock() 273 kvm_read_guest_lock(struct kvm * kvm,gpa_t gpa,void * data,unsigned long len) kvm_read_guest_lock() argument 283 kvm_write_guest_lock(struct kvm * kvm,gpa_t gpa,const void * data,unsigned long len) kvm_write_guest_lock() argument
|