| /linux/tools/testing/selftests/kvm/lib/s390/ |
| H A D | processor.c | 50 void virt_arch_pg_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa) in virt_arch_pg_map() argument 55 TEST_ASSERT((gva % vm->page_size) == 0, in virt_arch_pg_map() 58 gva, vm->page_size); in virt_arch_pg_map() 59 TEST_ASSERT(sparsebit_is_set(vm->vpages_valid, (gva >> vm->page_shift)), in virt_arch_pg_map() 60 "Invalid virtual address, gva: 0x%lx", gva); in virt_arch_pg_map() 64 gva, vm->page_size); in virt_arch_pg_map() 68 gva, vm->max_gfn, vm->page_size); in virt_arch_pg_map() 73 idx = (gva >> (64 - 11 * ri)) & 0x7ffu; in virt_arch_pg_map() 80 idx = (gva >> PAGE_SHIFT) & 0x0ffu; /* page index */ in virt_arch_pg_map() 87 gpa_t addr_arch_gva2gpa(struct kvm_vm *vm, gva_t gva) in addr_arch_gva2gpa() argument [all …]
|
| /linux/tools/testing/selftests/kvm/lib/arm64/ |
| H A D | processor.c | 24 static u64 pgd_index(struct kvm_vm *vm, gva_t gva) in pgd_index() argument 29 return (gva >> shift) & mask; in pgd_index() 32 static u64 pud_index(struct kvm_vm *vm, gva_t gva) in pud_index() argument 40 return (gva >> shift) & mask; in pud_index() 43 static u64 pmd_index(struct kvm_vm *vm, gva_t gva) in pmd_index() argument 51 return (gva >> shift) & mask; in pmd_index() 54 static u64 pte_index(struct kvm_vm *vm, gva_t gva) in pte_index() argument 57 return (gva >> vm->page_shift) & mask; in pte_index() 124 static void _virt_pg_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa, in _virt_pg_map() argument 131 TEST_ASSERT((gva % vm->page_size) == 0, in _virt_pg_map() [all …]
|
| /linux/tools/testing/selftests/kvm/lib/loongarch/ |
| H A D | processor.c | 18 static u64 virt_pte_index(struct kvm_vm *vm, gva_t gva, int level) in virt_pte_index() argument 25 return (gva >> shift) & mask; in virt_pte_index() 75 static u64 *virt_populate_pte(struct kvm_vm *vm, gva_t gva, int alloc) in virt_populate_pte() argument 87 ptep = addr_gpa2hva(vm, child) + virt_pte_index(vm, gva, level) * 8; in virt_populate_pte() 101 ptep = addr_gpa2hva(vm, child) + virt_pte_index(vm, gva, level) * 8; in virt_populate_pte() 105 TEST_FAIL("No mapping for vm virtual address, gva: 0x%lx", gva); in virt_populate_pte() 109 gpa_t addr_arch_gva2gpa(struct kvm_vm *vm, gva_t gva) in addr_arch_gva2gpa() argument 113 ptep = virt_populate_pte(vm, gva, 0); in addr_arch_gva2gpa() 114 TEST_ASSERT(*ptep != 0, "Virtual address gva in addr_arch_gva2gpa() 119 virt_arch_pg_map(struct kvm_vm * vm,gva_t gva,gpa_t gpa) virt_arch_pg_map() argument [all...] |
| /linux/tools/testing/selftests/kvm/lib/x86/ |
| H A D | processor.c | 213 u64 *parent_pte, gva_t gva, int level) in virt_get_pte() 217 int index = (gva >> PG_LEVEL_SHIFT(level)) & 0x1ffu; in virt_get_pte() 220 "Parent PTE (level %d) not PRESENT for gva: 0x%08lx", in virt_get_pte() 221 level + 1, gva); in virt_get_pte() 229 gva_t gva, in virt_create_upper_pte() 234 u64 *pte = virt_get_pte(vm, mmu, parent_pte, gva, current_level); in virt_create_upper_pte() 253 "Cannot create hugepage at level: %u, gva: 0x%lx", in virt_create_upper_pte() 254 current_level, gva); in virt_create_upper_pte() 256 "Cannot create page table at level: %u, gva: 0x%lx", in virt_create_upper_pte() 257 current_level, gva); in virt_create_upper_pte() 210 virt_get_pte(struct kvm_vm * vm,struct kvm_mmu * mmu,u64 * parent_pte,gva_t gva,int level) virt_get_pte() argument 226 virt_create_upper_pte(struct kvm_vm * vm,struct kvm_mmu * mmu,u64 * parent_pte,gva_t gva,gpa_t gpa,int current_level,int target_level) virt_create_upper_pte() argument 259 __virt_pg_map(struct kvm_vm * vm,struct kvm_mmu * mmu,gva_t gva,gpa_t gpa,int level) __virt_pg_map() argument 318 virt_arch_pg_map(struct kvm_vm * vm,gva_t gva,gpa_t gpa) virt_arch_pg_map() argument 323 virt_map_level(struct kvm_vm * vm,gva_t gva,gpa_t gpa,u64 nr_bytes,int level) virt_map_level() argument 359 __vm_get_page_table_entry(struct kvm_vm * vm,struct kvm_mmu * mmu,gva_t gva,int * level) __vm_get_page_table_entry() argument 400 vm_get_pte(struct kvm_vm * vm,gva_t gva) vm_get_pte() argument 616 addr_arch_gva2gpa(struct kvm_vm * vm,gva_t gva) addr_arch_gva2gpa() argument [all...] |
| /linux/arch/riscv/include/asm/ |
| H A D | kvm_tlb.h | 43 unsigned long gva, 49 unsigned long gva, unsigned long gvsz, 71 unsigned long gva, unsigned long gvsz, 79 unsigned long gva, unsigned long gvsz,
|
| /linux/tools/testing/selftests/kvm/x86/ |
| H A D | nested_dirty_log_test.c | 142 gva_t gva = arg & ~(PAGE_SIZE - 1); 152 * Note, gva will be '0' if there was no access, i.e. if the purpose of in test_handle_ucall_sync() 155 if (!gva) in test_handle_ucall_sync() 157 else if (gva >= TEST_MEM_ALIAS_BASE) in test_handle_ucall_sync() 158 page_nr = (gva - TEST_MEM_ALIAS_BASE) >> PAGE_SHIFT; in test_handle_ucall_sync() 160 page_nr = (gva - TEST_MEM_BASE) >> PAGE_SHIFT; in test_handle_ucall_sync() 163 TEST_ASSERT(gva || (arg & TEST_SYNC_NO_FAULT), in test_handle_ucall_sync() 164 "Test bug, gva must be valid if a fault is expected"); in test_handle_ucall_sync() 146 gva_t gva = arg & ~(PAGE_SIZE - 1); test_handle_ucall_sync() local
|
| H A D | sev_smoke_test.c | 111 gva_t gva; in test_sync_vmsa() local 118 gva = vm_alloc_shared(vm, PAGE_SIZE, KVM_UTIL_MIN_VADDR, in test_sync_vmsa() 120 hva = addr_gva2hva(vm, gva); in test_sync_vmsa() 122 vcpu_args_set(vcpu, 1, gva); in test_sync_vmsa()
|
| H A D | cpuid_test.c | 146 gva_t gva = vm_alloc(vm, size, KVM_UTIL_MIN_VADDR); in vcpu_alloc_cpuid() local 147 struct kvm_cpuid2 *guest_cpuids = addr_gva2hva(vm, gva); in vcpu_alloc_cpuid() 151 *p_gva = gva; in vcpu_alloc_cpuid()
|
| H A D | hyperv_tlb_flush.c | 556 gva_t test_data_page, gva; in vcpu_thread() 592 gva = vm_unused_gva_gap(vm, NTEST_PAGES * PAGE_SIZE, KVM_UTIL_MIN_VADDR); in main() 596 virt_pg_map(vm, gva + PAGE_SIZE * i, gpa & PAGE_MASK); in main() 597 data->test_pages_pte[i] = gva + (gpa & ~PAGE_MASK); in main() 584 gva_t test_data_page, gva; main() local
|
| /linux/tools/testing/selftests/kvm/lib/riscv/ |
| H A D | processor.c | 55 static u64 pte_index(struct kvm_vm *vm, gva_t gva, int level) in pte_index() argument 62 return (gva & pte_index_mask[level]) >> pte_index_shift[level]; in pte_index() 78 void virt_arch_pg_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa) in virt_arch_pg_map() argument 83 TEST_ASSERT((gva % vm->page_size) == 0, in virt_arch_pg_map() 85 " gva: 0x%lx vm->page_size: 0x%x", gva, vm->page_size); in virt_arch_pg_map() 86 TEST_ASSERT(sparsebit_is_set(vm->vpages_valid, (gva >> vm->page_shift)), in virt_arch_pg_map() 87 "Invalid virtual address, gva: 0x%lx", gva); in virt_arch_pg_map() 96 ptep = addr_gpa2hva(vm, vm->mmu.pgd) + pte_index(vm, gva, level) * 8; in virt_arch_pg_map() 106 pte_index(vm, gva, level) * 8; in virt_arch_pg_map() 121 gpa_t addr_arch_gva2gpa(struct kvm_vm *vm, gva_t gva) in addr_arch_gva2gpa() argument [all …]
|
| /linux/tools/testing/selftests/kvm/lib/ |
| H A D | elf.c | 165 gva_t gva = __vm_alloc(vm, seg_size, seg_vstart, MEM_REGION_CODE); in kvm_vm_elf_load() local 166 TEST_ASSERT(gva == seg_vstart, "Unable to allocate " in kvm_vm_elf_load() 171 n1, seg_vstart, gva); in kvm_vm_elf_load() 172 memset(addr_gva2hva(vm, gva), 0, seg_size); in kvm_vm_elf_load()
|
| H A D | ucall_common.c | 32 gva_t gva; in ucall_init() local 35 gva = vm_alloc_shared(vm, sizeof(*hdr), KVM_UTIL_MIN_VADDR, in ucall_init() 37 hdr = (struct ucall_header *)addr_gva2hva(vm, gva); in ucall_init() 45 write_guest_global(vm, ucall_pool, (struct ucall_header *)gva); in ucall_init()
|
| H A D | memstress.c | 52 gva_t gva; in memstress_guest_code() local 60 gva = vcpu_args->gva; in memstress_guest_code() 76 addr = gva + (page * args->guest_page_size); in memstress_guest_code() 104 vcpu_args->gva = guest_test_virt_mem + in memstress_setup_vcpus() 110 vcpu_args->gva = guest_test_virt_mem; in memstress_setup_vcpus()
|
| H A D | kvm_util.c | 1440 TEST_FAIL("No gva of specified pages available, pages: 0x%lx", pages); in ____vm_alloc() 1479 for (gva_t gva = gva_start; pages > 0; 1480 pages--, gva += vm->page_size, gpa += vm->page_size) { 1482 virt_pg_map(vm, gva, gpa); 1532 * starting at @gva to the page range starting at @gpa. 1534 void virt_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa, unsigned int npages) 1539 TEST_ASSERT(gva + size > gva, "Vaddr overflow"); 1543 virt_pg_map(vm, gva, gpa); 1545 gva in addr_gpa2hva() 1456 for (gva_t gva = gva_start; pages > 0; ____vm_alloc() local 1511 virt_map(struct kvm_vm * vm,gva_t gva,gpa_t gpa,unsigned int npages) virt_map() argument 2093 addr_gva2hva(struct kvm_vm * vm,gva_t gva) addr_gva2hva() argument [all...] |
| /linux/arch/x86/kvm/vmx/ |
| H A D | vmx_ops.h | 17 void invvpid_error(unsigned long ext, u16 vpid, gva_t gva); 303 static inline void __invvpid(unsigned long ext, u16 vpid, gva_t gva) in __invvpid() argument 308 u64 gva; in __invvpid() member 309 } operand = { vpid, 0, gva }; in __invvpid() 311 vmx_asm2(invvpid, "r"(ext), "m"(operand), ext, vpid, gva); in __invvpid()
|
| /linux/tools/testing/selftests/kvm/ |
| H A D | pre_fault_memory_test.c | 165 gpa_t gpa, gva, alignment, guest_page_size; in __test_pre_fault_memory() 180 gva = gpa & ((1ULL << (vm->va_bits - 1)) - 1); in __test_pre_fault_memory() 184 virt_map(vm, gva, gpa, TEST_NPAGES); in __test_pre_fault_memory() 193 vcpu_args_set(vcpu, 1, gva); in __test_pre_fault_memory() 164 gpa_t gpa, gva, alignment, guest_page_size; __test_pre_fault_memory() local
|
| H A D | access_tracking_perf_test.c | 126 static u64 lookup_pfn(int pagemap_fd, struct kvm_vm *vm, gva_t gva) in lookup_pfn() argument 128 u64 hva = (u64)addr_gva2hva(vm, gva); in lookup_pfn() 177 gva_t base_gva = vcpu_args->gva; in pageidle_mark_vcpu_memory_idle() 196 gva_t gva = base_gva + page * memstress_args.guest_page_size; in pageidle_mark_vcpu_memory_idle() local 197 u64 pfn = lookup_pfn(pagemap_fd, vm, gva); in pageidle_mark_vcpu_memory_idle()
|
| /linux/arch/mips/kvm/ |
| H A D | tlb.c | 166 int kvm_vz_guest_tlb_lookup(struct kvm_vcpu *vcpu, unsigned long gva, in kvm_vz_guest_tlb_lookup() argument 184 write_gc0_entryhi((o_entryhi & 0x3ff) | (gva & ~0xfffl)); in kvm_vz_guest_tlb_lookup() 226 pa = entrylo[!!(gva & pagemaskbit)]; in kvm_vz_guest_tlb_lookup() 240 pa |= gva & ~(pagemask | pagemaskbit); in kvm_vz_guest_tlb_lookup()
|
| H A D | vz.c | 197 static gpa_t kvm_vz_gva_to_gpa_cb(gva_t gva) in kvm_vz_gva_to_gpa_cb() argument 200 return gva; in kvm_vz_gva_to_gpa_cb() 689 static int kvm_vz_gva_to_gpa(struct kvm_vcpu *vcpu, unsigned long gva, in kvm_vz_gva_to_gpa() argument 692 u32 gva32 = gva; in kvm_vz_gva_to_gpa() 695 if ((long)gva == (s32)gva32) { in kvm_vz_gva_to_gpa() 750 } else if ((gva & 0xc000000000000000) == 0x8000000000000000) { in kvm_vz_gva_to_gpa() 758 if (segctl & (1ull << (56 + ((gva >> 59) & 0x7)))) { in kvm_vz_gva_to_gpa() 772 *gpa = gva & 0x07ffffffffffffff; in kvm_vz_gva_to_gpa() 778 return kvm_vz_guest_tlb_lookup(vcpu, gva, gpa); in kvm_vz_gva_to_gpa()
|
| /linux/tools/testing/selftests/kvm/arm64/ |
| H A D | mmio_sign_ext.c | 181 static void make_el0_accessible(struct kvm_vm *vm, uint64_t gva, uint64_t len) in make_el0_accessible() argument 185 for (addr = gva & ~((uint64_t)vm->page_size - 1); addr < gva + len; in make_el0_accessible()
|
| H A D | sea_to_user.c | 200 run->arm_sea.gva, run->arm_sea.gpa); in run_vm() 213 TEST_ASSERT_EQ(run->arm_sea.gva, EINJ_GVA); in run_vm()
|
| /linux/tools/testing/selftests/kvm/include/ |
| H A D | kvm_util.h | 728 void virt_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa, 731 void *addr_gva2hva(struct kvm_vm *vm, gva_t gva); 1226 * at @gva to the page starting at @gpa. 1228 void virt_arch_pg_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa); 1230 static inline void virt_pg_map(struct kvm_vm *vm, gva_t gva, gpa_t gpa) 1232 virt_arch_pg_map(vm, gva, gpa); 1233 sparsebit_set(vm->vpages_mapped, gva >> vm->page_shift); in addr_gva2gpa() argument 1242 * gva - VM virtual address 1250 * address given by @gva. 1252 gpa_t addr_arch_gva2gpa(struct kvm_vm *vm, gva_t gva); 1209 virt_pg_map(struct kvm_vm * vm,gva_t gva,gpa_t gpa) virt_pg_map() argument [all...] |
| H A D | memstress.h | 24 gva_t gva; member
|
| /linux/tools/testing/selftests/kvm/include/arm64/ |
| H A D | processor.h | 182 u64 *virt_get_pte_hva_at_level(struct kvm_vm *vm, gva_t gva, int level); 183 u64 *virt_get_pte_hva(struct kvm_vm *vm, gva_t gva);
|
| /linux/arch/x86/kvm/ |
| H A D | trace.h | 956 TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match), 957 TP_ARGS(gva, gpa, write, gpa_match), 960 __field(gva_t, gva) 967 __entry->gva = gva; 973 TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa,
|