Home
last modified time | relevance | path

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

/linux/arch/powerpc/kvm/
H A 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()
404 end = start + (memslot->npages << PAGE_SHIFT); in kvmppc_memslot_page_merge()
431 const struct kvm_memory_slot *memslot) in __kvmppc_uvmem_memslot_delete() argument
433 uv_unregister_mem_slot(kvm->arch.lpid, memslot->id); in __kvmppc_uvmem_memslot_delete()
434 kvmppc_uvmem_slot_free(kvm, memslot); in __kvmppc_uvmem_memslot_delete()
435 kvmppc_memslot_page_merge(kvm, memslot, true); in __kvmppc_uvmem_memslot_delete()
439 const struct kvm_memory_slot *memslot) in __kvmppc_uvmem_memslot_create() argument
443 if (kvmppc_memslot_page_merge(kvm, memslot, false)) in __kvmppc_uvmem_memslot_create()
[all …]
H A Dbook3s_64_mmu_hv.c206 void kvmppc_map_vrma(struct kvm_vcpu *vcpu, struct kvm_memory_slot *memslot, in kvmppc_map_vrma() argument
220 npages = memslot->npages >> (porder - PAGE_SHIFT); in kvmppc_map_vrma()
516 struct kvm_memory_slot *memslot; in kvmppc_book3s_hv_page_fault() local
579 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_book3s_hv_page_fault()
581 trace_kvm_page_fault_enter(vcpu, hpte, memslot, ea, dsisr); in kvmppc_book3s_hv_page_fault()
584 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) in kvmppc_book3s_hv_page_fault()
592 if (gfn_base < memslot->base_gfn) in kvmppc_book3s_hv_page_fault()
604 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_hv_page_fault()
606 pfn = __kvm_faultin_pfn(memslot, gfn, writing ? FOLL_WRITE : 0, in kvmppc_book3s_hv_page_fault()
689 rmap = &memslot->arch.rmap[gfn_base - memslot->base_gfn]; in kvmppc_book3s_hv_page_fault()
[all …]
H A Dbook3s_64_mmu_radix.c425 const struct kvm_memory_slot *memslot, in kvmppc_unmap_pte() argument
441 if (!memslot) { in kvmppc_unmap_pte()
442 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_unmap_pte()
443 if (!memslot) in kvmppc_unmap_pte()
456 kvmhv_remove_nest_rmap_range(kvm, memslot, gpa, hpa, page_size); in kvmppc_unmap_pte()
458 if ((old & _PAGE_DIRTY) && memslot->dirty_bitmap) in kvmppc_unmap_pte()
459 kvmppc_update_dirty_map(memslot, gfn, page_size); in kvmppc_unmap_pte()
823 struct kvm_memory_slot *memslot, in kvmppc_book3s_instantiate_page() argument
842 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_instantiate_page()
843 pfn = __kvm_faultin_pfn(memslot, gfn, writing ? FOLL_WRITE : 0, in kvmppc_book3s_instantiate_page()
[all …]
H A 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 …]
H A Dbook3s_hv_nested.c805 struct kvm_memory_slot *memslot; in kvmhv_release_all_nested() local
825 kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) in kvmhv_release_all_nested()
826 kvmhv_free_memslot_nest_rmap(memslot); in kvmhv_release_all_nested()
1037 const struct kvm_memory_slot *memslot, in kvmhv_remove_nest_rmap_range() argument
1044 if (!memslot) in kvmhv_remove_nest_rmap_range()
1046 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; in kvmhv_remove_nest_rmap_range()
1053 unsigned long *rmap = &memslot->arch.rmap[gfn]; in kvmhv_remove_nest_rmap_range()
1527 struct kvm_memory_slot *memslot; in __kvmhv_nested_page_fault() local
1596 memslot = gfn_to_memslot(kvm, gfn); in __kvmhv_nested_page_fault()
1597 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { in __kvmhv_nested_page_fault()
[all …]
H A Dbook3s.h11 struct kvm_memory_slot *memslot);
H A Dbook3s_64_vio.c356 struct kvm_memory_slot *memslot; in kvmppc_tce_to_ua() local
358 memslot = __gfn_to_memslot(kvm_memslots(kvm), gfn); in kvmppc_tce_to_ua()
359 if (!memslot) in kvmppc_tce_to_ua()
362 *ua = __gfn_to_hva_memslot(memslot, gfn) | in kvmppc_tce_to_ua()
H A Dbook3s_pr.c1865 struct kvm_memory_slot *memslot; in kvm_vm_ioctl_get_dirty_log_pr() local
1874 r = kvm_get_dirty_log(kvm, log, &is_dirty, &memslot); in kvm_vm_ioctl_get_dirty_log_pr()
1880 ga = memslot->base_gfn << PAGE_SHIFT; in kvm_vm_ioctl_get_dirty_log_pr()
1881 ga_end = ga + (memslot->npages << PAGE_SHIFT); in kvm_vm_ioctl_get_dirty_log_pr()
1886 n = kvm_dirty_bitmap_bytes(memslot); in kvm_vm_ioctl_get_dirty_log_pr()
1887 memset(memslot->dirty_bitmap, 0, n); in kvm_vm_ioctl_get_dirty_log_pr()
1897 struct kvm_memory_slot *memslot) in kvmppc_core_flush_memslot_pr() argument
H A Dbook3s.c848 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvm_arch_sync_dirty_log() argument
863 void kvmppc_core_flush_memslot(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvmppc_core_flush_memslot() argument
865 kvm->arch.kvm_ops->flush_memslot(kvm, memslot); in kvmppc_core_flush_memslot()
H A Dbooke.c1817 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvm_arch_sync_dirty_log() argument
1846 void kvmppc_core_flush_memslot(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvmppc_core_flush_memslot() argument
/linux/virt/kvm/
H A Ddirty_ring.c55 struct kvm_memory_slot *memslot; in kvm_reset_dirty_gfn() local
64 memslot = id_to_memslot(__kvm_memslots(kvm, as_id), id); in kvm_reset_dirty_gfn()
66 if (!memslot || offset >= memslot->npages || in kvm_reset_dirty_gfn()
67 offset + __fls(mask) >= memslot->npages) in kvm_reset_dirty_gfn()
71 kvm_arch_mmu_enable_log_dirty_pt_masked(kvm, memslot, offset, mask); in kvm_reset_dirty_gfn()
H A Dkvm_main.c328 const struct kvm_memory_slot *memslot) in kvm_flush_remote_tlbs_memslot() argument
331 * All current use cases for flushing the TLBs for a specific memslot in kvm_flush_remote_tlbs_memslot()
333 * mmu_lock. The interaction between the various operations on memslot in kvm_flush_remote_tlbs_memslot()
335 * operation is observed by any other operation on the same memslot. in kvm_flush_remote_tlbs_memslot()
338 kvm_flush_remote_tlbs_range(kvm, memslot->base_gfn, memslot->npages); in kvm_flush_remote_tlbs_memslot()
531 * least one memslot was found, i.e. if the handler found guest memory.
554 /* Iterate over each memslot intersecting [start, last] (inclusive) range */
737 * Prevent memslot modification between range_start() and range_end() in kvm_mmu_notifier_invalidate_range_start()
753 * i.e. don't need to rely on memslot overla in kvm_mmu_notifier_invalidate_range_start()
925 kvm_destroy_dirty_bitmap(struct kvm_memory_slot * memslot) kvm_destroy_dirty_bitmap() argument
950 struct kvm_memory_slot *memslot; kvm_free_memslots() local
1421 kvm_alloc_dirty_bitmap(struct kvm_memory_slot * memslot) kvm_alloc_dirty_bitmap() argument
2159 kvm_get_dirty_log(struct kvm * kvm,struct kvm_dirty_log * log,int * is_dirty,struct kvm_memory_slot ** memslot) kvm_get_dirty_log() argument
2224 struct kvm_memory_slot *memslot; kvm_get_dirty_log_protect() local
2335 struct kvm_memory_slot *memslot; kvm_clear_dirty_log_protect() local
2670 struct kvm_memory_slot *memslot = gfn_to_memslot(kvm, gfn); kvm_is_visible_gfn() local
2678 struct kvm_memory_slot *memslot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); kvm_vcpu_is_visible_gfn() local
3290 __kvm_write_guest_page(struct kvm * kvm,struct kvm_memory_slot * memslot,gfn_t gfn,const void * data,int offset,int len) __kvm_write_guest_page() argument
3514 mark_page_dirty_in_slot(struct kvm * kvm,const struct kvm_memory_slot * memslot,gfn_t gfn) mark_page_dirty_in_slot() argument
3541 struct kvm_memory_slot *memslot; mark_page_dirty() local
3550 struct kvm_memory_slot *memslot; kvm_vcpu_mark_page_dirty() local
[all...]
H A Dpfncache.c81 * If the page was cached from a memslot, make sure the memslots have in kvm_gpc_check()
165 .slot = gpc->memslot, in hva_to_pfn_retry()
287 gpc->memslot = NULL; in __kvm_gpc_refresh()
303 gpc->memslot = __gfn_to_memslot(slots, gfn); in __kvm_gpc_refresh()
304 gpc->uhva = gfn_to_hva_memslot(gpc->memslot, gfn); in __kvm_gpc_refresh()
312 * Even if the GPA and/or the memslot generation changed, the in __kvm_gpc_refresh()
345 * Some/all of the uhva, gpa, and memslot generation info may still be in __kvm_gpc_refresh()
467 * memslot generation. The PFN lookup needs to be redone every in kvm_gpc_deactivate()
/linux/arch/loongarch/kvm/
H A Dmmu.c608 static bool fault_supports_huge_mapping(struct kvm_memory_slot *memslot, in fault_supports_huge_mapping() argument
614 if (kvm_slot_dirty_track_enabled(memslot) && write) in fault_supports_huge_mapping()
617 if (kvm_hugepage_capable(memslot)) in fault_supports_huge_mapping()
620 if (kvm_hugepage_incapable(memslot)) in fault_supports_huge_mapping()
623 start = memslot->userspace_addr; in fault_supports_huge_mapping()
624 end = start + memslot->npages * PAGE_SIZE; in fault_supports_huge_mapping()
781 struct kvm_memory_slot *memslot; in kvm_map_page() local
791 memslot = gfn_to_memslot(kvm, gfn); in kvm_map_page()
792 hva = gfn_to_hva_memslot_prot(memslot, gfn, &writeable); in kvm_map_page()
860 if (write || !kvm_slot_dirty_track_enabled(memslot)) in kvm_map_page()
[all …]
/linux/arch/riscv/kvm/
H A Dvcpu_exit.c19 struct kvm_memory_slot *memslot; in gstage_page_fault() local
27 memslot = gfn_to_memslot(vcpu->kvm, gfn); in gstage_page_fault()
28 hva = gfn_to_hva_memslot_prot(memslot, gfn, &writable); in gstage_page_fault()
46 ret = kvm_riscv_mmu_map(vcpu, memslot, fault_addr, hva, in gstage_page_fault()
/linux/arch/riscv/include/asm/
H A Dkvm_mmu.h14 int kvm_riscv_mmu_map(struct kvm_vcpu *vcpu, struct kvm_memory_slot *memslot,
/linux/arch/x86/include/asm/uv/
H A Duv_geo.h57 char memslot; /* The memory slot on the bus */ member
/linux/tools/testing/selftests/kvm/lib/
H A Dkvm_util.c512 * read-only memslots as MMIO, and creating a read-only memslot for the in __vm_create()
1093 * Install a unique fd for each memslot so that the fd in vm_mem_add()
1153 * memslot - KVM memory slot ID
1159 * using kvm memory slot ID given by memslot. TEST_ASSERT failure
1160 * on error (e.g. currently no memory region using memslot as a KVM
1164 memslot2region(struct kvm_vm *vm, u32 memslot)
1169 memslot) in memslot2region()
1170 if (region->region.slot == memslot) in memslot2region()
1174 " requested slot: %u\n", memslot); in memslot2region()
2010 * memslot
1165 memslot2region(struct kvm_vm * vm,u32 memslot) memslot2region() argument
2025 __vm_phy_pages_alloc(struct kvm_vm * vm,size_t num,gpa_t min_gpa,u32 memslot,bool protected) __vm_phy_pages_alloc() argument
2070 vm_phy_page_alloc(struct kvm_vm * vm,gpa_t min_gpa,u32 memslot) vm_phy_page_alloc() argument
[all...]
/linux/tools/testing/selftests/kvm/include/
H A Dkvm_util.h133 * memslot.
167 memslot2region(struct kvm_vm *vm, u32 memslot);
993 gpa_t vm_phy_page_alloc(struct kvm_vm *vm, gpa_t min_gpa, u32 memslot);
995 u32 memslot, bool protected);
999 gpa_t min_gpa, u32 memslot) in vm_phy_pages_alloc() argument
1006 return __vm_phy_pages_alloc(vm, num, min_gpa, memslot, in vm_phy_pages_alloc()
/linux/arch/powerpc/include/asm/
H A Dkvm_ppc.h174 struct kvm_memory_slot *memslot, unsigned long porder);
217 struct kvm_memory_slot *memslot);
278 void (*flush_memslot)(struct kvm *kvm, struct kvm_memory_slot *memslot);
/linux/tools/testing/selftests/kvm/lib/x86/
H A Dprocessor.c523 u32 s, memslot = 0; in tdp_identity_map_default_memslots() local
525 struct userspace_mem_region *region = memslot2region(vm, memslot); in tdp_identity_map_default_memslots()
527 /* Only memslot 0 is mapped here, ensure it's the only one being used */ in tdp_identity_map_default_memslots()
/linux/Documentation/virt/kvm/
H A Dlocking.rst84 its KVM memslot.
/linux/Documentation/virt/kvm/devices/
H A Dvm.rst306 dirty tracking is disabled on any memslot, migration mode is automatically
/linux/arch/mips/kvm/
H A Dmips.c976 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvm_arch_sync_dirty_log() argument