| /Linux-v5.4/arch/powerpc/kvm/ |
| D | book3s_64_mmu_hv.c | 204 void kvmppc_map_vrma(struct kvm_vcpu *vcpu, struct kvm_memory_slot *memslot, in kvmppc_map_vrma() argument 218 npages = memslot->npages >> (porder - PAGE_SHIFT); in kvmppc_map_vrma() 501 struct kvm_memory_slot *memslot; in kvmppc_book3s_hv_page_fault() local 563 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_book3s_hv_page_fault() 565 trace_kvm_page_fault_enter(vcpu, hpte, memslot, ea, dsisr); in kvmppc_book3s_hv_page_fault() 568 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) in kvmppc_book3s_hv_page_fault() 576 if (gfn_base < memslot->base_gfn) in kvmppc_book3s_hv_page_fault() 591 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_hv_page_fault() 687 rmap = &memslot->arch.rmap[gfn_base - memslot->base_gfn]; in kvmppc_book3s_hv_page_fault() 747 struct kvm_memory_slot *memslot; in kvmppc_rmap_reset() local [all …]
|
| D | book3s_64_mmu_radix.c | 377 const struct kvm_memory_slot *memslot, in kvmppc_unmap_pte() argument 393 if (!memslot) { in kvmppc_unmap_pte() 394 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_unmap_pte() 395 if (!memslot) in kvmppc_unmap_pte() 408 kvmhv_remove_nest_rmap_range(kvm, memslot, gpa, hpa, page_size); in kvmppc_unmap_pte() 410 if ((old & _PAGE_DIRTY) && memslot->dirty_bitmap) in kvmppc_unmap_pte() 411 kvmppc_update_dirty_map(memslot, gfn, page_size); in kvmppc_unmap_pte() 768 struct kvm_memory_slot *memslot, in kvmppc_book3s_instantiate_page() argument 793 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_instantiate_page() 800 pfn = __gfn_to_pfn_memslot(memslot, gfn, false, NULL, in kvmppc_book3s_instantiate_page() [all …]
|
| D | book3s_hv_rm_mmu.c | 109 void kvmppc_update_dirty_map(const struct kvm_memory_slot *memslot, in kvmppc_update_dirty_map() argument 114 if (!psize || !memslot->dirty_bitmap) in kvmppc_update_dirty_map() 117 gfn -= memslot->base_gfn; in kvmppc_update_dirty_map() 118 set_dirty_bits_atomic(memslot->dirty_bitmap, gfn, npages); in kvmppc_update_dirty_map() 125 struct kvm_memory_slot *memslot; in kvmppc_set_dirty_from_hpte() local 131 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in kvmppc_set_dirty_from_hpte() 132 if (memslot && memslot->dirty_bitmap) in kvmppc_set_dirty_from_hpte() 133 kvmppc_update_dirty_map(memslot, gfn, psize); in kvmppc_set_dirty_from_hpte() 142 struct kvm_memory_slot *memslot; in revmap_for_hpte() local 147 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in revmap_for_hpte() [all …]
|
| D | trace_hv.h | 274 struct kvm_memory_slot *memslot, unsigned long ea, 277 TP_ARGS(vcpu, hptep, memslot, ea, dsisr), 297 __entry->base_gfn = memslot ? memslot->base_gfn : -1UL; 298 __entry->slot_flags = memslot ? memslot->flags : 0;
|
| D | book3s_hv_nested.c | 651 struct kvm_memory_slot *memslot; in kvmhv_release_all_nested() local 673 kvm_for_each_memslot(memslot, kvm_memslots(kvm)) in kvmhv_release_all_nested() 674 kvmhv_free_memslot_nest_rmap(memslot); in kvmhv_release_all_nested() 878 const struct kvm_memory_slot *memslot, in kvmhv_remove_nest_rmap_range() argument 885 if (!memslot) in kvmhv_remove_nest_rmap_range() 887 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; in kvmhv_remove_nest_rmap_range() 894 unsigned long *rmap = &memslot->arch.rmap[gfn]; in kvmhv_remove_nest_rmap_range() 1265 struct kvm_memory_slot *memslot; in __kvmhv_nested_page_fault() local 1335 memslot = gfn_to_memslot(kvm, gfn); in __kvmhv_nested_page_fault() 1336 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { in __kvmhv_nested_page_fault() [all …]
|
| D | book3s_64_vio_hv.c | 82 struct kvm_memory_slot *memslot; in kvmppc_rm_tce_to_ua() local 84 memslot = search_memslots(kvm_memslots_raw(kvm), gfn); in kvmppc_rm_tce_to_ua() 85 if (!memslot) in kvmppc_rm_tce_to_ua() 88 *ua = __gfn_to_hva_memslot(memslot, gfn) | in kvmppc_rm_tce_to_ua() 92 *prmap = &memslot->arch.rmap[gfn - memslot->base_gfn]; in kvmppc_rm_tce_to_ua()
|
| D | book3s_pr.c | 398 struct kvm_memory_slot *memslot; in do_kvm_unmap_hva() local 401 kvm_for_each_memslot(memslot, slots) { in do_kvm_unmap_hva() 405 hva_start = max(start, memslot->userspace_addr); in do_kvm_unmap_hva() 406 hva_end = min(end, memslot->userspace_addr + in do_kvm_unmap_hva() 407 (memslot->npages << PAGE_SHIFT)); in do_kvm_unmap_hva() 414 gfn = hva_to_gfn_memslot(hva_start, memslot); in do_kvm_unmap_hva() 415 gfn_end = hva_to_gfn_memslot(hva_end + PAGE_SIZE - 1, memslot); in do_kvm_unmap_hva() 1864 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log_pr() local 1880 memslot = id_to_memslot(slots, log->slot); in kvm_vm_ioctl_get_dirty_log_pr() 1882 ga = memslot->base_gfn << PAGE_SHIFT; in kvm_vm_ioctl_get_dirty_log_pr() [all …]
|
| D | book3s.h | 11 struct kvm_memory_slot *memslot);
|
| D | book3s_64_vio.c | 337 struct kvm_memory_slot *memslot; in kvmppc_tce_to_ua() local 339 memslot = search_memslots(kvm_memslots(kvm), gfn); in kvmppc_tce_to_ua() 340 if (!memslot) in kvmppc_tce_to_ua() 343 *ua = __gfn_to_hva_memslot(memslot, gfn) | in kvmppc_tce_to_ua()
|
| D | book3s.c | 849 void kvmppc_core_flush_memslot(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvmppc_core_flush_memslot() argument 851 kvm->arch.kvm_ops->flush_memslot(kvm, memslot); in kvmppc_core_flush_memslot() 855 struct kvm_memory_slot *memslot, in kvmppc_core_prepare_memory_region() argument 858 return kvm->arch.kvm_ops->prepare_memory_region(kvm, memslot, mem); in kvmppc_core_prepare_memory_region()
|
| D | book3s_hv.c | 4393 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log_hv() local 4406 memslot = id_to_memslot(slots, log->slot); in kvm_vm_ioctl_get_dirty_log_hv() 4408 if (!memslot->dirty_bitmap) in kvm_vm_ioctl_get_dirty_log_hv() 4415 n = kvm_dirty_bitmap_bytes(memslot); in kvm_vm_ioctl_get_dirty_log_hv() 4416 buf = memslot->dirty_bitmap + n / sizeof(long); in kvm_vm_ioctl_get_dirty_log_hv() 4420 r = kvmppc_hv_get_dirty_log_radix(kvm, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv() 4422 r = kvmppc_hv_get_dirty_log_hpt(kvm, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv() 4432 p = memslot->dirty_bitmap; in kvm_vm_ioctl_get_dirty_log_hv() 4440 kvmppc_harvest_vpa_dirty(&vcpu->arch.vpa, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv() 4441 kvmppc_harvest_vpa_dirty(&vcpu->arch.dtl, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv() [all …]
|
| /Linux-v5.4/virt/kvm/arm/ |
| D | mmu.c | 41 static bool memslot_is_logging(struct kvm_memory_slot *memslot) in memslot_is_logging() argument 43 return memslot->dirty_bitmap && !(memslot->flags & KVM_MEM_READONLY); in memslot_is_logging() 409 struct kvm_memory_slot *memslot) in stage2_flush_memslot() argument 411 phys_addr_t addr = memslot->base_gfn << PAGE_SHIFT; in stage2_flush_memslot() 412 phys_addr_t end = addr + PAGE_SIZE * memslot->npages; in stage2_flush_memslot() 434 struct kvm_memory_slot *memslot; in stage2_flush_vm() local 441 kvm_for_each_memslot(memslot, slots) in stage2_flush_vm() 442 stage2_flush_memslot(kvm, memslot); in stage2_flush_vm() 919 struct kvm_memory_slot *memslot) in stage2_unmap_memslot() argument 921 hva_t hva = memslot->userspace_addr; in stage2_unmap_memslot() [all …]
|
| /Linux-v5.4/tools/testing/selftests/kvm/lib/s390x/ |
| D | processor.c | 18 void virt_pgd_alloc(struct kvm_vm *vm, uint32_t memslot) in virt_pgd_alloc() argument 29 KVM_GUEST_PAGE_TABLE_MIN_PADDR, memslot); in virt_pgd_alloc() 41 static uint64_t virt_alloc_region(struct kvm_vm *vm, int ri, uint32_t memslot) in virt_alloc_region() argument 46 KVM_GUEST_PAGE_TABLE_MIN_PADDR, memslot); in virt_alloc_region() 71 uint32_t memslot) in virt_pg_map() argument 98 entry[idx] = virt_alloc_region(vm, ri, memslot); in virt_pg_map()
|
| /Linux-v5.4/arch/powerpc/include/asm/ |
| D | kvm_book3s.h | 199 const struct kvm_memory_slot *memslot, 206 struct kvm_memory_slot *memslot, 215 extern int kvm_unmap_radix(struct kvm *kvm, struct kvm_memory_slot *memslot, 217 extern int kvm_age_radix(struct kvm *kvm, struct kvm_memory_slot *memslot, 219 extern int kvm_test_age_radix(struct kvm *kvm, struct kvm_memory_slot *memslot, 222 struct kvm_memory_slot *memslot, unsigned long *map); 224 const struct kvm_memory_slot *memslot); 242 extern void kvmppc_update_dirty_map(const struct kvm_memory_slot *memslot, 259 struct kvm_memory_slot *memslot, unsigned long *map); 261 struct kvm_memory_slot *memslot,
|
| D | kvm_book3s_64.h | 486 static inline bool slot_is_aligned(struct kvm_memory_slot *memslot, in slot_is_aligned() argument 493 return !(memslot->base_gfn & mask) && !(memslot->npages & mask); in slot_is_aligned() 633 const struct kvm_memory_slot *memslot,
|
| D | kvm_ppc.h | 171 struct kvm_memory_slot *memslot, unsigned long porder); 210 struct kvm_memory_slot *memslot, 220 struct kvm_memory_slot *memslot); 280 void (*flush_memslot)(struct kvm *kvm, struct kvm_memory_slot *memslot); 282 struct kvm_memory_slot *memslot,
|
| /Linux-v5.4/virt/kvm/ |
| D | kvm_main.c | 147 static void mark_page_dirty_in_slot(struct kvm_memory_slot *memslot, gfn_t gfn); 577 static void kvm_destroy_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_destroy_dirty_bitmap() argument 579 if (!memslot->dirty_bitmap) in kvm_destroy_dirty_bitmap() 582 kvfree(memslot->dirty_bitmap); in kvm_destroy_dirty_bitmap() 583 memslot->dirty_bitmap = NULL; in kvm_destroy_dirty_bitmap() 602 struct kvm_memory_slot *memslot; in kvm_free_memslots() local 607 kvm_for_each_memslot(memslot, slots) in kvm_free_memslots() 608 kvm_free_memslot(kvm, memslot, NULL); in kvm_free_memslots() 856 static int kvm_create_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_create_dirty_bitmap() argument 858 unsigned long dirty_bytes = 2 * kvm_dirty_bitmap_bytes(memslot); in kvm_create_dirty_bitmap() [all …]
|
| /Linux-v5.4/arch/mips/kvm/ |
| D | mmu.c | 473 struct kvm_memory_slot *memslot, in handle_hva_to_gpa() argument 478 struct kvm_memory_slot *memslot; in handle_hva_to_gpa() local 484 kvm_for_each_memslot(memslot, slots) { in handle_hva_to_gpa() 488 hva_start = max(start, memslot->userspace_addr); in handle_hva_to_gpa() 489 hva_end = min(end, memslot->userspace_addr + in handle_hva_to_gpa() 490 (memslot->npages << PAGE_SHIFT)); in handle_hva_to_gpa() 498 gfn = hva_to_gfn_memslot(hva_start, memslot); in handle_hva_to_gpa() 499 gfn_end = hva_to_gfn_memslot(hva_end + PAGE_SIZE - 1, memslot); in handle_hva_to_gpa() 501 ret |= handler(kvm, gfn, gfn_end, memslot, data); in handle_hva_to_gpa() 509 struct kvm_memory_slot *memslot, void *data) in kvm_unmap_hva_handler() argument [all …]
|
| D | mips.c | 224 struct kvm_memory_slot *memslot, in kvm_arch_prepare_memory_region() argument 996 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log() local 1006 memslot = id_to_memslot(slots, log->slot); in kvm_vm_ioctl_get_dirty_log() 1009 kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot); in kvm_vm_ioctl_get_dirty_log() 1019 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_clear_dirty_log() local 1029 memslot = id_to_memslot(slots, log->slot); in kvm_vm_ioctl_clear_dirty_log() 1032 kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot); in kvm_vm_ioctl_clear_dirty_log()
|
| /Linux-v5.4/include/linux/ |
| D | kvm_host.h | 353 static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot) in kvm_dirty_bitmap_bytes() argument 355 return ALIGN(memslot->npages, BITS_PER_LONG) / 8; in kvm_dirty_bitmap_bytes() 358 static inline unsigned long *kvm_second_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_second_dirty_bitmap() argument 360 unsigned long len = kvm_dirty_bitmap_bytes(memslot); in kvm_second_dirty_bitmap() 362 return memslot->dirty_bitmap + len / sizeof(*memslot->dirty_bitmap); in kvm_second_dirty_bitmap() 583 #define kvm_for_each_memslot(memslot, slots) \ argument 584 for (memslot = &slots->memslots[0]; \ 585 memslot < slots->memslots + KVM_MEM_SLOTS_NUM && memslot->npages;\ 586 memslot++) 686 struct kvm_memory_slot *memslot,
|
| D | kvm_types.h | 49 struct kvm_memory_slot *memslot; member
|
| /Linux-v5.4/arch/x86/kvm/ |
| D | mmu.c | 1997 struct kvm_memory_slot *memslot; in kvm_handle_hva_range() local 2004 kvm_for_each_memslot(memslot, slots) { in kvm_handle_hva_range() 2008 hva_start = max(start, memslot->userspace_addr); in kvm_handle_hva_range() 2009 hva_end = min(end, memslot->userspace_addr + in kvm_handle_hva_range() 2010 (memslot->npages << PAGE_SHIFT)); in kvm_handle_hva_range() 2017 gfn_start = hva_to_gfn_memslot(hva_start, memslot); in kvm_handle_hva_range() 2018 gfn_end = hva_to_gfn_memslot(hva_end + PAGE_SIZE - 1, memslot); in kvm_handle_hva_range() 2020 for_each_slot_rmap_range(memslot, PT_PAGE_TABLE_LEVEL, in kvm_handle_hva_range() 2024 ret |= handler(kvm, iterator.rmap, memslot, in kvm_handle_hva_range() 5675 slot_handle_level_range(struct kvm *kvm, struct kvm_memory_slot *memslot, in slot_handle_level_range() argument [all …]
|
| /Linux-v5.4/tools/testing/selftests/kvm/lib/ |
| D | kvm_util.c | 709 memslot2region(struct kvm_vm *vm, uint32_t memslot) in memslot2region() argument 715 if (region->region.slot == memslot) in memslot2region() 720 " requested slot: %u\n", memslot); in memslot2region() 1558 vm_paddr_t paddr_min, uint32_t memslot) in vm_phy_pages_alloc() argument 1570 region = memslot2region(vm, memslot); in vm_phy_pages_alloc() 1585 paddr_min, vm->page_size, memslot); in vm_phy_pages_alloc() 1598 uint32_t memslot) in vm_phy_page_alloc() argument 1600 return vm_phy_pages_alloc(vm, 1, paddr_min, memslot); in vm_phy_page_alloc()
|
| D | kvm_util_internal.h | 72 memslot2region(struct kvm_vm *vm, uint32_t memslot);
|
| /Linux-v5.4/tools/testing/selftests/kvm/include/ |
| D | kvm_util.h | 147 uint32_t memslot); 149 vm_paddr_t paddr_min, uint32_t memslot);
|