Home
last modified time | relevance | path

Searched refs:memslot (Results 1 – 25 of 35) sorted by relevance

12

/Linux-v5.4/arch/powerpc/kvm/
Dbook3s_64_mmu_hv.c204 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 …]
Dbook3s_64_mmu_radix.c377 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 …]
Dbook3s_hv_rm_mmu.c109 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 …]
Dtrace_hv.h274 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;
Dbook3s_hv_nested.c651 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 …]
Dbook3s_64_vio_hv.c82 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()
Dbook3s_pr.c398 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 …]
Dbook3s.h11 struct kvm_memory_slot *memslot);
Dbook3s_64_vio.c337 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()
Dbook3s.c849 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()
Dbook3s_hv.c4393 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/
Dmmu.c41 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/
Dprocessor.c18 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/
Dkvm_book3s.h199 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,
Dkvm_book3s_64.h486 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,
Dkvm_ppc.h171 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/
Dkvm_main.c147 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/
Dmmu.c473 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 …]
Dmips.c224 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/
Dkvm_host.h353 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,
Dkvm_types.h49 struct kvm_memory_slot *memslot; member
/Linux-v5.4/arch/x86/kvm/
Dmmu.c1997 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/
Dkvm_util.c709 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()
Dkvm_util_internal.h72 memslot2region(struct kvm_vm *vm, uint32_t memslot);
/Linux-v5.4/tools/testing/selftests/kvm/include/
Dkvm_util.h147 uint32_t memslot);
149 vm_paddr_t paddr_min, uint32_t memslot);

12