Home
last modified time | relevance | path

Searched refs:gfn (Results 1 – 25 of 79) sorted by relevance

1234

/Linux-v5.15/drivers/gpu/drm/i915/gvt/
Dpage_track.c35 struct intel_vgpu *vgpu, unsigned long gfn) in intel_vgpu_find_page_track() argument
37 return radix_tree_lookup(&vgpu->page_track_tree, gfn); in intel_vgpu_find_page_track()
50 int intel_vgpu_register_page_track(struct intel_vgpu *vgpu, unsigned long gfn, in intel_vgpu_register_page_track() argument
56 track = intel_vgpu_find_page_track(vgpu, gfn); in intel_vgpu_register_page_track()
67 ret = radix_tree_insert(&vgpu->page_track_tree, gfn, track); in intel_vgpu_register_page_track()
83 unsigned long gfn) in intel_vgpu_unregister_page_track() argument
87 track = radix_tree_delete(&vgpu->page_track_tree, gfn); in intel_vgpu_unregister_page_track()
90 intel_gvt_hypervisor_disable_page_track(vgpu, gfn); in intel_vgpu_unregister_page_track()
103 int intel_vgpu_enable_page_track(struct intel_vgpu *vgpu, unsigned long gfn) in intel_vgpu_enable_page_track() argument
108 track = intel_vgpu_find_page_track(vgpu, gfn); in intel_vgpu_enable_page_track()
[all …]
Dmpt.h165 struct intel_vgpu *vgpu, unsigned long gfn) in intel_gvt_hypervisor_enable_page_track() argument
167 return intel_gvt_host.mpt->enable_page_track(vgpu->handle, gfn); in intel_gvt_hypervisor_enable_page_track()
179 struct intel_vgpu *vgpu, unsigned long gfn) in intel_gvt_hypervisor_disable_page_track() argument
181 return intel_gvt_host.mpt->disable_page_track(vgpu->handle, gfn); in intel_gvt_hypervisor_disable_page_track()
225 struct intel_vgpu *vgpu, unsigned long gfn) in intel_gvt_hypervisor_gfn_to_mfn() argument
227 return intel_gvt_host.mpt->gfn_to_mfn(vgpu->handle, gfn); in intel_gvt_hypervisor_gfn_to_mfn()
241 struct intel_vgpu *vgpu, unsigned long gfn, unsigned long size, in intel_gvt_hypervisor_dma_map_guest_page() argument
244 return intel_gvt_host.mpt->dma_map_guest_page(vgpu->handle, gfn, size, in intel_gvt_hypervisor_dma_map_guest_page()
286 struct intel_vgpu *vgpu, unsigned long gfn, in intel_gvt_hypervisor_map_gfn_to_mfn() argument
294 return intel_gvt_host.mpt->map_gfn_to_mfn(vgpu->handle, gfn, mfn, nr, in intel_gvt_hypervisor_map_gfn_to_mfn()
[all …]
Dhypercall.h57 int (*enable_page_track)(unsigned long handle, u64 gfn);
58 int (*disable_page_track)(unsigned long handle, u64 gfn);
63 unsigned long (*gfn_to_mfn)(unsigned long handle, unsigned long gfn);
65 int (*dma_map_guest_page)(unsigned long handle, unsigned long gfn,
71 int (*map_gfn_to_mfn)(unsigned long handle, unsigned long gfn,
79 bool (*is_valid_gfn)(unsigned long handle, unsigned long gfn);
Dpage_track.h45 struct intel_vgpu *vgpu, unsigned long gfn);
48 unsigned long gfn, gvt_page_track_handler_t handler,
51 unsigned long gfn);
53 int intel_vgpu_enable_page_track(struct intel_vgpu *vgpu, unsigned long gfn);
54 int intel_vgpu_disable_page_track(struct intel_vgpu *vgpu, unsigned long gfn);
Dkvmgt.c87 gfn_t gfn; member
105 gfn_t gfn; member
249 static void gvt_unpin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn, in gvt_unpin_guest_page() argument
261 unsigned long cur_gfn = gfn + npage; in gvt_unpin_guest_page()
269 static int gvt_pin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn, in gvt_pin_guest_page() argument
284 unsigned long cur_gfn = gfn + npage; in gvt_pin_guest_page()
315 gvt_unpin_guest_page(vgpu, gfn, npage * PAGE_SIZE); in gvt_pin_guest_page()
319 static int gvt_dma_map_page(struct intel_vgpu *vgpu, unsigned long gfn, in gvt_dma_map_page() argument
326 ret = gvt_pin_guest_page(vgpu, gfn, size, &page); in gvt_dma_map_page()
335 gvt_unpin_guest_page(vgpu, gfn, size); in gvt_dma_map_page()
[all …]
/Linux-v5.15/arch/x86/kvm/mmu/
Dmmutrace.h13 __field(__u64, gfn) \
20 __entry->gfn = sp->gfn; \
37 __entry->gfn, role.level, \
211 TP_PROTO(u64 *sptep, gfn_t gfn, u64 spte),
212 TP_ARGS(sptep, gfn, spte),
216 __field(gfn_t, gfn)
223 __entry->gfn = gfn;
229 __entry->gfn, __entry->access, __entry->gen)
234 TP_PROTO(u64 addr, gfn_t gfn, unsigned access),
235 TP_ARGS(addr, gfn, access),
[all …]
Dtdp_mmu.c174 static struct kvm_mmu_page *alloc_tdp_mmu_page(struct kvm_vcpu *vcpu, gfn_t gfn, in alloc_tdp_mmu_page() argument
184 sp->gfn = gfn; in alloc_tdp_mmu_page()
220 static void handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,
235 static void handle_changed_spte_dirty_log(struct kvm *kvm, int as_id, gfn_t gfn, in handle_changed_spte_dirty_log() argument
248 slot = __gfn_to_memslot(__kvm_memslots(kvm, as_id), gfn); in handle_changed_spte_dirty_log()
249 mark_page_dirty_in_slot(kvm, slot, gfn); in handle_changed_spte_dirty_log()
318 gfn_t base_gfn = sp->gfn; in handle_removed_tdp_mmu_page()
321 gfn_t gfn; in handle_removed_tdp_mmu_page() local
330 gfn = base_gfn + i * KVM_PAGES_PER_HPAGE(level); in handle_removed_tdp_mmu_page()
371 handle_changed_spte(kvm, kvm_mmu_page_as_id(sp), gfn, in handle_removed_tdp_mmu_page()
[all …]
Dtdp_iter.c14 SHADOW_PT_INDEX(iter->gfn << PAGE_SHIFT, iter->level); in tdp_iter_refresh_sptep()
18 static gfn_t round_gfn_for_level(gfn_t gfn, int level) in round_gfn_for_level() argument
20 return gfn & -KVM_PAGES_PER_HPAGE(level); in round_gfn_for_level()
32 iter->gfn = round_gfn_for_level(iter->next_last_level_gfn, iter->level); in tdp_iter_restart()
97 iter->gfn = round_gfn_for_level(iter->next_last_level_gfn, iter->level); in try_step_down()
116 if (SHADOW_PT_INDEX(iter->gfn << PAGE_SHIFT, iter->level) == in try_step_side()
120 iter->gfn += KVM_PAGES_PER_HPAGE(iter->level); in try_step_side()
121 iter->next_last_level_gfn = iter->gfn; in try_step_side()
139 iter->gfn = round_gfn_for_level(iter->gfn, iter->level); in try_step_up()
Dpage_track.c60 static void update_gfn_track(struct kvm_memory_slot *slot, gfn_t gfn, in update_gfn_track() argument
65 index = gfn_to_index(gfn, slot->base_gfn, PG_LEVEL_4K); in update_gfn_track()
88 struct kvm_memory_slot *slot, gfn_t gfn, in kvm_slot_page_track_add_page() argument
95 update_gfn_track(slot, gfn, mode, 1); in kvm_slot_page_track_add_page()
101 kvm_mmu_gfn_disallow_lpage(slot, gfn); in kvm_slot_page_track_add_page()
104 if (kvm_mmu_slot_gfn_write_protect(kvm, slot, gfn, PG_LEVEL_4K)) in kvm_slot_page_track_add_page()
123 struct kvm_memory_slot *slot, gfn_t gfn, in kvm_slot_page_track_remove_page() argument
129 update_gfn_track(slot, gfn, mode, -1); in kvm_slot_page_track_remove_page()
135 kvm_mmu_gfn_allow_lpage(slot, gfn); in kvm_slot_page_track_remove_page()
142 bool kvm_page_track_is_active(struct kvm_vcpu *vcpu, gfn_t gfn, in kvm_page_track_is_active() argument
[all …]
Dmmu_internal.h51 gfn_t gfn; member
127 int mmu_try_to_unsync_pages(struct kvm_vcpu *vcpu, gfn_t gfn, bool can_unsync);
129 void kvm_mmu_gfn_disallow_lpage(const struct kvm_memory_slot *slot, gfn_t gfn);
130 void kvm_mmu_gfn_allow_lpage(const struct kvm_memory_slot *slot, gfn_t gfn);
132 struct kvm_memory_slot *slot, u64 gfn,
164 const struct kvm_memory_slot *slot, gfn_t gfn,
166 int kvm_mmu_hugepage_adjust(struct kvm_vcpu *vcpu, gfn_t gfn,
169 void disallowed_hugepage_adjust(u64 spte, gfn_t gfn, int cur_level,
Dmmu.c295 static void mark_mmio_spte(struct kvm_vcpu *vcpu, u64 *sptep, u64 gfn, in mark_mmio_spte() argument
298 u64 spte = make_mmio_spte(vcpu, gfn, access); in mark_mmio_spte()
300 trace_mark_mmio_spte(sptep, gfn, spte); in mark_mmio_spte()
775 return sp->gfn + (index << ((sp->role.level - 1) * PT64_LEVEL_BITS)); in kvm_mmu_page_get_gfn()
778 static void kvm_mmu_page_set_gfn(struct kvm_mmu_page *sp, int index, gfn_t gfn) in kvm_mmu_page_set_gfn() argument
781 sp->gfns[index] = gfn; in kvm_mmu_page_set_gfn()
785 if (WARN_ON(gfn != kvm_mmu_page_get_gfn(sp, index))) in kvm_mmu_page_set_gfn()
788 sp->gfn, in kvm_mmu_page_set_gfn()
789 kvm_mmu_page_get_gfn(sp, index), gfn); in kvm_mmu_page_set_gfn()
796 static struct kvm_lpage_info *lpage_info_slot(gfn_t gfn, in lpage_info_slot() argument
[all …]
Dmmu_audit.c96 gfn_t gfn; in audit_mappings() local
113 gfn = kvm_mmu_page_get_gfn(sp, sptep - sp->spt); in audit_mappings()
114 pfn = kvm_vcpu_gfn_to_pfn_atomic(vcpu, gfn); in audit_mappings()
133 gfn_t gfn; in inspect_spte_has_rmap() local
136 gfn = kvm_mmu_page_get_gfn(rev_sp, sptep - rev_sp->spt); in inspect_spte_has_rmap()
139 slot = __gfn_to_memslot(slots, gfn); in inspect_spte_has_rmap()
143 audit_printk(kvm, "no memslot for gfn %llx\n", gfn); in inspect_spte_has_rmap()
145 (long int)(sptep - rev_sp->spt), rev_sp->gfn); in inspect_spte_has_rmap()
150 rmap_head = gfn_to_rmap(gfn, rev_sp->role.level, slot); in inspect_spte_has_rmap()
202 slot = __gfn_to_memslot(slots, sp->gfn); in audit_write_protection()
[all …]
Dpaging_tmpl.h95 gfn_t gfn; member
360 gfn_t gfn; in FNAME() local
464 gfn = gpte_to_gfn_lvl(pte, walker->level); in FNAME()
465 gfn += (addr & PT_LVL_OFFSET_MASK(walker->level)) >> PAGE_SHIFT; in FNAME()
468 gfn += pse36_gfn_delta(pte); in FNAME()
470 real_gpa = mmu->translate_gpa(vcpu, gfn_to_gpa(gfn), access, &walker->fault); in FNAME()
474 walker->gfn = real_gpa >> PAGE_SHIFT; in FNAME()
565 gfn_t gfn; in FNAME() local
573 gfn = gpte_to_gfn(gpte); in FNAME()
576 pfn = pte_prefetch_gfn_to_pfn(vcpu, gfn, in FNAME()
[all …]
Dtdp_mmu.h31 gfn_t end = sp->gfn + KVM_PAGES_PER_HPAGE(sp->role.level + 1); in kvm_tdp_mmu_zap_sp()
44 sp->gfn, end, false, false); in kvm_tdp_mmu_zap_sp()
67 gfn_t gfn, unsigned long mask,
74 struct kvm_memory_slot *slot, gfn_t gfn,
/Linux-v5.15/arch/powerpc/kvm/
Dbook3s_hv_uvmem.c288 static void kvmppc_mark_gfn(unsigned long gfn, struct kvm *kvm, in kvmppc_mark_gfn() argument
294 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) { in kvmppc_mark_gfn()
295 unsigned long index = gfn - p->base_pfn; in kvmppc_mark_gfn()
307 static void kvmppc_gfn_secure_uvmem_pfn(unsigned long gfn, in kvmppc_gfn_secure_uvmem_pfn() argument
310 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_UVMEM_PFN, uvmem_pfn); in kvmppc_gfn_secure_uvmem_pfn()
314 static void kvmppc_gfn_secure_mem_pfn(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_secure_mem_pfn() argument
316 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_MEM_PFN, 0); in kvmppc_gfn_secure_mem_pfn()
320 static void kvmppc_gfn_shared(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_shared() argument
322 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_SHARED, 0); in kvmppc_gfn_shared()
326 static void kvmppc_gfn_remove(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_remove() argument
[all …]
Dbook3s_64_mmu_hv.c492 unsigned long gpa, gfn, hva, pfn, hpa; in kvmppc_book3s_hv_page_fault() local
555 gfn = gpa >> PAGE_SHIFT; in kvmppc_book3s_hv_page_fault()
556 memslot = gfn_to_memslot(kvm, gfn); in kvmppc_book3s_hv_page_fault()
581 hva = gfn_to_hva_memslot(memslot, gfn); in kvmppc_book3s_hv_page_fault()
593 pfn = __gfn_to_pfn_memslot(memslot, gfn, false, NULL, in kvmppc_book3s_hv_page_fault()
758 unsigned long *rmapp, unsigned long gfn) in kvmppc_unmap_hpte() argument
782 hpte_rpn(ptel, psize) == gfn) { in kvmppc_unmap_hpte()
790 kvmppc_update_dirty_map(memslot, gfn, psize); in kvmppc_unmap_hpte()
799 unsigned long gfn) in kvm_unmap_rmapp() argument
805 rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; in kvm_unmap_rmapp()
[all …]
De500_mmu_host.c323 u64 gvaddr, gfn_t gfn, struct kvm_book3e_206_tlb_entry *gtlbe, in kvmppc_e500_shadow_map() argument
353 slot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn); in kvmppc_e500_shadow_map()
354 hva = gfn_to_hva_memslot(slot, gfn); in kvmppc_e500_shadow_map()
381 slot_start = pfn - (gfn - slot->base_gfn); in kvmppc_e500_shadow_map()
409 gfn_start = gfn & ~(tsize_pages - 1); in kvmppc_e500_shadow_map()
412 if (gfn_start + pfn - gfn < start) in kvmppc_e500_shadow_map()
414 if (gfn_end + pfn - gfn > end) in kvmppc_e500_shadow_map()
416 if ((gfn & (tsize_pages - 1)) != in kvmppc_e500_shadow_map()
449 pfn = gfn_to_pfn_memslot(slot, gfn); in kvmppc_e500_shadow_map()
453 __func__, (long)gfn); in kvmppc_e500_shadow_map()
[all …]
Dbook3s_hv_rm_mmu.c103 unsigned long gfn, unsigned long psize) in kvmppc_update_dirty_map() argument
110 gfn -= memslot->base_gfn; in kvmppc_update_dirty_map()
111 set_dirty_bits_atomic(memslot->dirty_bitmap, gfn, npages); in kvmppc_update_dirty_map()
119 unsigned long gfn; in kvmppc_set_dirty_from_hpte() local
123 gfn = hpte_rpn(hpte_gr, psize); in kvmppc_set_dirty_from_hpte()
124 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in kvmppc_set_dirty_from_hpte()
126 kvmppc_update_dirty_map(memslot, gfn, psize); in kvmppc_set_dirty_from_hpte()
137 unsigned long gfn; in revmap_for_hpte() local
139 gfn = hpte_rpn(hpte_gr, kvmppc_actual_pgsz(hpte_v, hpte_gr)); in revmap_for_hpte()
140 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in revmap_for_hpte()
[all …]
/Linux-v5.15/include/linux/
Dkvm_host.h268 kvm_pfn_t gfn; member
843 int gfn_to_page_many_atomic(struct kvm_memory_slot *slot, gfn_t gfn,
846 struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn);
847 unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn);
848 unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable);
849 unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot, gfn_t gfn);
850 unsigned long gfn_to_hva_memslot_prot(struct kvm_memory_slot *slot, gfn_t gfn,
856 kvm_pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn);
857 kvm_pfn_t gfn_to_pfn_prot(struct kvm *kvm, gfn_t gfn, bool write_fault,
859 kvm_pfn_t gfn_to_pfn_memslot(struct kvm_memory_slot *slot, gfn_t gfn);
[all …]
/Linux-v5.15/include/xen/
Dxen-ops.h72 xen_pfn_t *gfn, int nr,
85 xen_pfn_t *gfn, int nr, in xen_xlate_remap_gfn_array() argument
122 xen_pfn_t *gfn, int nr, in xen_remap_domain_gfn_array() argument
128 return xen_xlate_remap_gfn_array(vma, addr, gfn, nr, err_ptr, in xen_remap_domain_gfn_array()
136 return xen_remap_pfn(vma, addr, gfn, nr, err_ptr, prot, domid, in xen_remap_domain_gfn_array()
182 xen_pfn_t gfn, int nr, in xen_remap_domain_gfn_range() argument
189 return xen_remap_pfn(vma, addr, &gfn, nr, NULL, prot, domid, false); in xen_remap_domain_gfn_range()
/Linux-v5.15/virt/kvm/
Dkvm_main.c2062 struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn) in gfn_to_memslot() argument
2064 return __gfn_to_memslot(kvm_memslots(kvm), gfn); in gfn_to_memslot()
2068 struct kvm_memory_slot *kvm_vcpu_gfn_to_memslot(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_memslot() argument
2074 slot = try_get_memslot(slots, vcpu->last_used_slot, gfn); in kvm_vcpu_gfn_to_memslot()
2083 slot = search_memslots(slots, gfn, &slot_index); in kvm_vcpu_gfn_to_memslot()
2093 bool kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn) in kvm_is_visible_gfn() argument
2095 struct kvm_memory_slot *memslot = gfn_to_memslot(kvm, gfn); in kvm_is_visible_gfn()
2101 bool kvm_vcpu_is_visible_gfn(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_is_visible_gfn() argument
2103 struct kvm_memory_slot *memslot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_is_visible_gfn()
2109 unsigned long kvm_host_page_size(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_host_page_size() argument
[all …]
Ddirty_ring.c84 static inline void kvm_dirty_gfn_set_invalid(struct kvm_dirty_gfn *gfn) in kvm_dirty_gfn_set_invalid() argument
86 gfn->flags = 0; in kvm_dirty_gfn_set_invalid()
89 static inline void kvm_dirty_gfn_set_dirtied(struct kvm_dirty_gfn *gfn) in kvm_dirty_gfn_set_dirtied() argument
91 gfn->flags = KVM_DIRTY_GFN_F_DIRTY; in kvm_dirty_gfn_set_dirtied()
94 static inline bool kvm_dirty_gfn_harvested(struct kvm_dirty_gfn *gfn) in kvm_dirty_gfn_harvested() argument
96 return gfn->flags & KVM_DIRTY_GFN_F_RESET; in kvm_dirty_gfn_harvested()
/Linux-v5.15/drivers/xen/
Dxlate_mmu.c45 typedef void (*xen_gfn_fn_t)(unsigned long gfn, void *data);
84 static void setup_hparams(unsigned long gfn, void *data) in setup_hparams() argument
89 info->h_gpfns[info->h_iter] = gfn; in setup_hparams()
145 xen_pfn_t *gfn, int nr, in xen_xlate_remap_gfn_array() argument
158 data.fgfn = gfn; in xen_xlate_remap_gfn_array()
174 static void unmap_gfn(unsigned long gfn, void *data) in unmap_gfn() argument
179 xrp.gpfn = gfn; in unmap_gfn()
197 static void setup_balloon_gfn(unsigned long gfn, void *data) in setup_balloon_gfn() argument
201 info->pfns[info->idx++] = gfn; in setup_balloon_gfn()
/Linux-v5.15/include/trace/events/
Dkvm.h261 TP_PROTO(u64 gva, u64 gfn),
263 TP_ARGS(gva, gfn),
267 __field(u64, gfn)
272 __entry->gfn = gfn;
275 TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn)
280 TP_PROTO(u64 gva, u64 gfn),
282 TP_ARGS(gva, gfn)
287 TP_PROTO(u64 gva, u64 gfn),
289 TP_ARGS(gva, gfn)
/Linux-v5.15/arch/x86/include/asm/
Dkvm_page_track.h57 struct kvm_memory_slot *slot, gfn_t gfn,
60 struct kvm_memory_slot *slot, gfn_t gfn,
62 bool kvm_page_track_is_active(struct kvm_vcpu *vcpu, gfn_t gfn,

1234