Home
last modified time | relevance | path

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

12

/Linux-v6.1/arch/arm64/kvm/
Dmmu.c77 static bool memslot_is_logging(struct kvm_memory_slot *memslot) in memslot_is_logging() argument
79 return memslot->dirty_bitmap && !(memslot->flags & KVM_MEM_READONLY); in memslot_is_logging()
229 struct kvm_memory_slot *memslot) in stage2_flush_memslot() argument
231 phys_addr_t addr = memslot->base_gfn << PAGE_SHIFT; in stage2_flush_memslot()
232 phys_addr_t end = addr + PAGE_SIZE * memslot->npages; in stage2_flush_memslot()
247 struct kvm_memory_slot *memslot; in stage2_flush_vm() local
254 kvm_for_each_memslot(memslot, bkt, slots) in stage2_flush_vm()
255 stage2_flush_memslot(kvm, memslot); in stage2_flush_vm()
723 struct kvm_memory_slot *memslot) in stage2_unmap_memslot() argument
725 hva_t hva = memslot->userspace_addr; in stage2_unmap_memslot()
[all …]
/Linux-v6.1/arch/powerpc/kvm/
Dbook3s_hv_uvmem.c361 static bool kvmppc_next_nontransitioned_gfn(const struct kvm_memory_slot *memslot, in kvmppc_next_nontransitioned_gfn() argument
392 const struct kvm_memory_slot *memslot, bool merge) in kvmppc_memslot_page_merge() argument
394 unsigned long gfn = memslot->base_gfn; in kvmppc_memslot_page_merge()
403 end = start + (memslot->npages << PAGE_SHIFT); in kvmppc_memslot_page_merge()
426 const struct kvm_memory_slot *memslot) in __kvmppc_uvmem_memslot_delete() argument
428 uv_unregister_mem_slot(kvm->arch.lpid, memslot->id); in __kvmppc_uvmem_memslot_delete()
429 kvmppc_uvmem_slot_free(kvm, memslot); in __kvmppc_uvmem_memslot_delete()
430 kvmppc_memslot_page_merge(kvm, memslot, true); in __kvmppc_uvmem_memslot_delete()
434 const struct kvm_memory_slot *memslot) in __kvmppc_uvmem_memslot_create() argument
438 if (kvmppc_memslot_page_merge(kvm, memslot, false)) in __kvmppc_uvmem_memslot_create()
[all …]
Dbook3s_64_mmu_hv.c205 void kvmppc_map_vrma(struct kvm_vcpu *vcpu, struct kvm_memory_slot *memslot, in kvmppc_map_vrma() argument
219 npages = memslot->npages >> (porder - PAGE_SHIFT); in kvmppc_map_vrma()
501 struct kvm_memory_slot *memslot; in kvmppc_book3s_hv_page_fault() local
564 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_book3s_hv_page_fault()
566 trace_kvm_page_fault_enter(vcpu, hpte, memslot, ea, dsisr); in kvmppc_book3s_hv_page_fault()
569 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) in kvmppc_book3s_hv_page_fault()
577 if (gfn_base < memslot->base_gfn) in kvmppc_book3s_hv_page_fault()
589 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_hv_page_fault()
601 pfn = __gfn_to_pfn_memslot(memslot, gfn, false, NULL, in kvmppc_book3s_hv_page_fault()
691 rmap = &memslot->arch.rmap[gfn_base - memslot->base_gfn]; in kvmppc_book3s_hv_page_fault()
[all …]
Dbook3s_64_mmu_radix.c419 const struct kvm_memory_slot *memslot, in kvmppc_unmap_pte() argument
435 if (!memslot) { in kvmppc_unmap_pte()
436 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_unmap_pte()
437 if (!memslot) in kvmppc_unmap_pte()
450 kvmhv_remove_nest_rmap_range(kvm, memslot, gpa, hpa, page_size); in kvmppc_unmap_pte()
452 if ((old & _PAGE_DIRTY) && memslot->dirty_bitmap) in kvmppc_unmap_pte()
453 kvmppc_update_dirty_map(memslot, gfn, page_size); in kvmppc_unmap_pte()
817 struct kvm_memory_slot *memslot, in kvmppc_book3s_instantiate_page() argument
842 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_instantiate_page()
849 pfn = __gfn_to_pfn_memslot(memslot, gfn, false, NULL, in kvmppc_book3s_instantiate_page()
[all …]
Dbook3s_hv_rm_mmu.c96 void kvmppc_update_dirty_map(const struct kvm_memory_slot *memslot, in kvmppc_update_dirty_map() argument
101 if (!psize || !memslot->dirty_bitmap) in kvmppc_update_dirty_map()
104 gfn -= memslot->base_gfn; in kvmppc_update_dirty_map()
105 set_dirty_bits_atomic(memslot->dirty_bitmap, gfn, npages); in kvmppc_update_dirty_map()
112 struct kvm_memory_slot *memslot; in kvmppc_set_dirty_from_hpte() local
118 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in kvmppc_set_dirty_from_hpte()
119 if (memslot && memslot->dirty_bitmap) in kvmppc_set_dirty_from_hpte()
120 kvmppc_update_dirty_map(memslot, gfn, psize); in kvmppc_set_dirty_from_hpte()
129 struct kvm_memory_slot *memslot; in revmap_for_hpte() local
134 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in revmap_for_hpte()
[all …]
Dtrace_hv.h294 struct kvm_memory_slot *memslot, unsigned long ea,
297 TP_ARGS(vcpu, hptep, memslot, ea, dsisr),
317 __entry->base_gfn = memslot ? memslot->base_gfn : -1UL;
318 __entry->slot_flags = memslot ? memslot->flags : 0;
Dbook3s_hv_nested.c767 struct kvm_memory_slot *memslot; in kvmhv_release_all_nested() local
787 kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) in kvmhv_release_all_nested()
788 kvmhv_free_memslot_nest_rmap(memslot); in kvmhv_release_all_nested()
999 const struct kvm_memory_slot *memslot, in kvmhv_remove_nest_rmap_range() argument
1006 if (!memslot) in kvmhv_remove_nest_rmap_range()
1008 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; in kvmhv_remove_nest_rmap_range()
1015 unsigned long *rmap = &memslot->arch.rmap[gfn]; in kvmhv_remove_nest_rmap_range()
1489 struct kvm_memory_slot *memslot; in __kvmhv_nested_page_fault() local
1559 memslot = gfn_to_memslot(kvm, gfn); in __kvmhv_nested_page_fault()
1560 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { in __kvmhv_nested_page_fault()
[all …]
Dbook3s.h11 struct kvm_memory_slot *memslot);
Dbook3s_64_vio.c358 struct kvm_memory_slot *memslot; in kvmppc_tce_to_ua() local
360 memslot = __gfn_to_memslot(kvm_memslots(kvm), gfn); in kvmppc_tce_to_ua()
361 if (!memslot) in kvmppc_tce_to_ua()
364 *ua = __gfn_to_hva_memslot(memslot, gfn) | in kvmppc_tce_to_ua()
Dbook3s_hv.c4947 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log_hv() local
4960 memslot = id_to_memslot(slots, log->slot); in kvm_vm_ioctl_get_dirty_log_hv()
4962 if (!memslot || !memslot->dirty_bitmap) in kvm_vm_ioctl_get_dirty_log_hv()
4969 n = kvm_dirty_bitmap_bytes(memslot); in kvm_vm_ioctl_get_dirty_log_hv()
4970 buf = memslot->dirty_bitmap + n / sizeof(long); in kvm_vm_ioctl_get_dirty_log_hv()
4974 r = kvmppc_hv_get_dirty_log_radix(kvm, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv()
4976 r = kvmppc_hv_get_dirty_log_hpt(kvm, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv()
4986 p = memslot->dirty_bitmap; in kvm_vm_ioctl_get_dirty_log_hv()
4994 kvmppc_harvest_vpa_dirty(&vcpu->arch.vpa, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv()
4995 kvmppc_harvest_vpa_dirty(&vcpu->arch.dtl, memslot, buf); in kvm_vm_ioctl_get_dirty_log_hv()
[all …]
Dbook3s_pr.c1871 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log_pr() local
1880 r = kvm_get_dirty_log(kvm, log, &is_dirty, &memslot); in kvm_vm_ioctl_get_dirty_log_pr()
1886 ga = memslot->base_gfn << PAGE_SHIFT; in kvm_vm_ioctl_get_dirty_log_pr()
1887 ga_end = ga + (memslot->npages << PAGE_SHIFT); in kvm_vm_ioctl_get_dirty_log_pr()
1892 n = kvm_dirty_bitmap_bytes(memslot); in kvm_vm_ioctl_get_dirty_log_pr()
1893 memset(memslot->dirty_bitmap, 0, n); in kvm_vm_ioctl_get_dirty_log_pr()
1903 struct kvm_memory_slot *memslot) in kvmppc_core_flush_memslot_pr() argument
/Linux-v6.1/virt/kvm/
Ddirty_ring.c41 struct kvm_memory_slot *memslot; in kvm_reset_dirty_gfn() local
50 memslot = id_to_memslot(__kvm_memslots(kvm, as_id), id); in kvm_reset_dirty_gfn()
52 if (!memslot || (offset + __fls(mask)) >= memslot->npages) in kvm_reset_dirty_gfn()
56 kvm_arch_mmu_enable_log_dirty_pt_masked(kvm, memslot, offset, mask); in kvm_reset_dirty_gfn()
Dkvm_main.c957 static void kvm_destroy_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_destroy_dirty_bitmap() argument
959 if (!memslot->dirty_bitmap) in kvm_destroy_dirty_bitmap()
962 kvfree(memslot->dirty_bitmap); in kvm_destroy_dirty_bitmap()
963 memslot->dirty_bitmap = NULL; in kvm_destroy_dirty_bitmap()
979 struct kvm_memory_slot *memslot; in kvm_free_memslots() local
991 hash_for_each_safe(slots->id_hash, bkt, idnode, memslot, id_node[1]) in kvm_free_memslots()
992 kvm_free_memslot(kvm, memslot); in kvm_free_memslots()
1383 static int kvm_alloc_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_alloc_dirty_bitmap() argument
1385 unsigned long dirty_bytes = kvm_dirty_bitmap_bytes(memslot); in kvm_alloc_dirty_bitmap()
1387 memslot->dirty_bitmap = __vcalloc(2, dirty_bytes, GFP_KERNEL_ACCOUNT); in kvm_alloc_dirty_bitmap()
[all …]
Dpfncache.c284 gpc->memslot = __gfn_to_memslot(slots, gfn); in kvm_gfn_to_pfn_cache_refresh()
285 gpc->uhva = gfn_to_hva_memslot(gpc->memslot, gfn); in kvm_gfn_to_pfn_cache_refresh()
/Linux-v6.1/arch/powerpc/include/asm/
Dkvm_book3s.h197 const struct kvm_memory_slot *memslot,
204 struct kvm_memory_slot *memslot,
213 extern void kvm_unmap_radix(struct kvm *kvm, struct kvm_memory_slot *memslot,
215 extern bool kvm_age_radix(struct kvm *kvm, struct kvm_memory_slot *memslot,
217 extern bool kvm_test_age_radix(struct kvm *kvm, struct kvm_memory_slot *memslot,
220 struct kvm_memory_slot *memslot, unsigned long *map);
222 const struct kvm_memory_slot *memslot);
240 extern void kvmppc_update_dirty_map(const struct kvm_memory_slot *memslot,
257 struct kvm_memory_slot *memslot, unsigned long *map);
259 struct kvm_memory_slot *memslot,
Dkvm_book3s_64.h488 static inline bool slot_is_aligned(struct kvm_memory_slot *memslot, in slot_is_aligned() argument
495 return !(memslot->base_gfn & mask) && !(memslot->npages & mask); in slot_is_aligned()
635 const struct kvm_memory_slot *memslot,
/Linux-v6.1/arch/riscv/kvm/
Dvcpu_exit.c16 struct kvm_memory_slot *memslot; in gstage_page_fault() local
24 memslot = gfn_to_memslot(vcpu->kvm, gfn); in gstage_page_fault()
25 hva = gfn_to_hva_memslot_prot(memslot, gfn, &writable); in gstage_page_fault()
43 ret = kvm_riscv_gstage_map(vcpu, memslot, fault_addr, hva, in gstage_page_fault()
Dmmu.c336 struct kvm_memory_slot *memslot = id_to_memslot(slots, slot); in gstage_wp_memory_region() local
337 phys_addr_t start = memslot->base_gfn << PAGE_SHIFT; in gstage_wp_memory_region()
338 phys_addr_t end = (memslot->base_gfn + memslot->npages) << PAGE_SHIFT; in gstage_wp_memory_region()
405 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvm_arch_sync_dirty_log() argument
410 const struct kvm_memory_slot *memslot) in kvm_arch_flush_remote_tlbs_memslot() argument
618 struct kvm_memory_slot *memslot, in kvm_riscv_gstage_map() argument
629 bool logging = (memslot->dirty_bitmap && in kvm_riscv_gstage_map()
630 !(memslot->flags & KVM_MEM_READONLY)) ? true : false; in kvm_riscv_gstage_map()
/Linux-v6.1/include/linux/
Dkvm_types.h62 struct kvm_memory_slot *memslot; member
69 struct kvm_memory_slot *memslot; member
Dkvm_host.h585 static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot) in kvm_dirty_bitmap_bytes() argument
587 return ALIGN(memslot->npages, BITS_PER_LONG) / 8; in kvm_dirty_bitmap_bytes()
590 static inline unsigned long *kvm_second_dirty_bitmap(struct kvm_memory_slot *memslot) in kvm_second_dirty_bitmap() argument
592 unsigned long len = kvm_dirty_bitmap_bytes(memslot); in kvm_second_dirty_bitmap()
594 return memslot->dirty_bitmap + len / sizeof(*memslot->dirty_bitmap); in kvm_second_dirty_bitmap()
975 #define kvm_for_each_memslot(memslot, bkt, slots) \ argument
976 hash_for_each(slots->id_hash, bkt, memslot, id_node[slots->node_idx]) \
977 if (WARN_ON_ONCE(!memslot->npages)) { \
1220 void mark_page_dirty_in_slot(struct kvm *kvm, const struct kvm_memory_slot *memslot, gfn_t gfn);
1387 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot);
[all …]
/Linux-v6.1/arch/x86/kvm/mmu/
Dmmu.c5703 slot_handle_level_range(struct kvm *kvm, const struct kvm_memory_slot *memslot, in slot_handle_level_range() argument
5710 for_each_slot_rmap_range(memslot, start_level, end_level, start_gfn, in slot_handle_level_range()
5713 flush |= fn(kvm, iterator.rmap, memslot); in slot_handle_level_range()
5730 slot_handle_level(struct kvm *kvm, const struct kvm_memory_slot *memslot, in slot_handle_level() argument
5734 return slot_handle_level_range(kvm, memslot, fn, start_level, in slot_handle_level()
5735 end_level, memslot->base_gfn, in slot_handle_level()
5736 memslot->base_gfn + memslot->npages - 1, in slot_handle_level()
5741 slot_handle_level_4k(struct kvm *kvm, const struct kvm_memory_slot *memslot, in slot_handle_level_4k() argument
5744 return slot_handle_level(kvm, memslot, fn, PG_LEVEL_4K, in slot_handle_level_4k()
6017 const struct kvm_memory_slot *memslot; in kvm_rmap_zap_gfn_range() local
[all …]
/Linux-v6.1/tools/testing/selftests/kvm/lib/
Dkvm_util.c977 memslot2region(struct kvm_vm *vm, uint32_t memslot) in memslot2region() argument
982 memslot) in memslot2region()
983 if (region->region.slot == memslot) in memslot2region()
987 " requested slot: %u\n", memslot); in memslot2region()
1800 vm_paddr_t paddr_min, uint32_t memslot) in vm_phy_pages_alloc() argument
1812 region = memslot2region(vm, memslot); in vm_phy_pages_alloc()
1827 paddr_min, vm->page_size, memslot); in vm_phy_pages_alloc()
1840 uint32_t memslot) in vm_phy_page_alloc() argument
1842 return vm_phy_pages_alloc(vm, 1, paddr_min, memslot); in vm_phy_page_alloc()
/Linux-v6.1/arch/x86/include/asm/uv/
Duv_geo.h57 char memslot; /* The memory slot on the bus */ member
/Linux-v6.1/tools/testing/selftests/kvm/include/
Dkvm_util_base.h105 memslot2region(struct kvm_vm *vm, uint32_t memslot);
638 uint32_t memslot);
640 vm_paddr_t paddr_min, uint32_t memslot);
/Linux-v6.1/arch/x86/include/asm/
Dkvm_host.h1732 const struct kvm_memory_slot *memslot,
1735 const struct kvm_memory_slot *memslot,
1738 const struct kvm_memory_slot *memslot,
1742 const struct kvm_memory_slot *memslot);
1744 const struct kvm_memory_slot *memslot);

12