| /linux/drivers/xen/ |
| H A D | gntdev-dmabuf.c | 479 dmabuf_imp_grant_foreign_access(unsigned long *gfns, u32 *refs, in dmabuf_imp_grant_foreign_access() argument 502 gfns[i], 0); in dmabuf_imp_grant_foreign_access() 564 unsigned long *gfns; in dmabuf_imp_to_refs() local 612 gfns = kcalloc(count, sizeof(*gfns), GFP_KERNEL); in dmabuf_imp_to_refs() 613 if (!gfns) { in dmabuf_imp_to_refs() 619 * Now convert sgt to array of gfns without accessing underlying pages. in dmabuf_imp_to_refs() 623 * and then calculate gfns directly from them. in dmabuf_imp_to_refs() 630 gfns[i++] = pfn_to_gfn(pfn); in dmabuf_imp_to_refs() 633 ret = ERR_PTR(dmabuf_imp_grant_foreign_access(gfns, in dmabuf_imp_to_refs() 636 kfree(gfns); in dmabuf_imp_to_refs()
|
| H A D | xlate_mmu.c | 206 * @gfns: returns the array of corresponding GFNs 208 * @nr_grant_frames: number of GFNs 214 int __init xen_xlate_map_ballooned_pages(xen_pfn_t **gfns, void **virt, in xen_xlate_map_ballooned_pages() argument 259 *gfns = pfns; in xen_xlate_map_ballooned_pages()
|
| H A D | mem-reservation.c | 101 /* @frames is an array of GFNs */
|
| /linux/drivers/video/fbdev/ |
| H A D | xen-fbfront.c | 51 unsigned long *gfns; member 393 info->gfns = vmalloc_array(info->nr_pages, sizeof(unsigned long)); in xenfb_probe() 394 if (!info->gfns) in xenfb_probe() 518 vfree(info->gfns); in xenfb_remove() 532 int epd = PAGE_SIZE / sizeof(info->gfns[0]); in xenfb_init_shared_page() 535 info->gfns[i] = vmalloc_to_gfn(info->fb + i * PAGE_SIZE); in xenfb_init_shared_page() 538 info->page->pd[i] = vmalloc_to_gfn(&info->gfns[i * epd]); in xenfb_init_shared_page()
|
| /linux/virt/kvm/ |
| H A D | dirty_ring.c | 111 * whose gfns are in the same slot, and are within N frame numbers of in kvm_dirty_ring_reset() 117 * batch, and the bitmask of gfns that need to be reset (relative to in kvm_dirty_ring_reset() 119 * a sequence of gfns X, X-1, ... X-N-1 can be batched. in kvm_dirty_ring_reset()
|
| H A D | kvm_main.c | 2431 * Returns true if _all_ gfns in the range [@start, @end) have attributes
|
| /linux/arch/powerpc/kvm/ |
| H A D | book3s_hv_uvmem.c | 130 * the hypervisor. All its GFNs are normal-GFNs. 133 * hypervisor without the VM's consent. Its GFNs are 134 * either Shared-GFN or Secure-GFNs. 139 * of H_SVM_INIT_DONE. This transient VM, can have GFNs 155 * time the Ultravisor may request some of its GFNs to be shared or 156 * secured. So its GFNs can be in one of the three GFN states. 159 * secure-state. At this point any left-over normal-GFNs are 163 * All its GFNs are moved to Normal-GFNs. 166 * the secure-GFN and shared-GFNs are tranistioned to normal-GFN
|
| /linux/include/xen/ |
| H A D | xen-ops.h | 78 * @gfn: Array of GFNs to map in xen_xlate_remap_gfn_array() 85 * @gfn and @err_ptr may point to the same buffer, the GFNs will be
|
| /linux/arch/x86/kvm/mmu/ |
| H A D | tdp_mmu.c | 800 * MMIO SPTEs for "impossible" gfns, instead sending such accesses down in tdp_mmu_max_gfn_exclusive() 975 * Zap leaf SPTEs for the range of gfns, [start, end), for all *VALID** roots. 1322 * Mark the SPTEs range of GFNs [start, end) unaccessed and return non-zero 1323 * if any of the GFNs in the range have been accessed. 1369 * this helper must NOT be used to unmap GFNs, as it processes only in __kvm_tdp_mmu_age_gfn_range() 1402 * Remove write access from all SPTEs at or above min_level that map GFNs 1441 * Remove write access from all the SPTEs mapping GFNs in the memslot. Will 1658 * Clear the dirty status (D-bit or W-bit) of all the SPTEs mapping GFNs in the 1713 * Clear the dirty status (D-bit or W-bit) of all the 4k SPTEs mapping GFNs for 1715 * contain all the GFNs represented by set bits in the mask.
|
| H A D | mmu.c | 133 * to optimize for the common case where many GFNs will have at most a handful 747 * attributes are mixed, i.e. not identical for all gfns at the current level. 1471 * (Re)Enable dirty logging for all 4KiB SPTEs that map the GFNs in in kvm_arch_mmu_enable_log_dirty_pt_masked() 3593 * any guest that generates such gfns is running nested and is being in kvm_handle_noslot_fault() 7040 * Invalidate (zap) SPTEs that cover GFNs from gfn_start and up to gfn_end 7121 * aliased by multiple L2 gfns and/or from multiple nested roots with in topup_split_caches() 7122 * different roles. Aliasing gfns when using TDP is atypical for VMMs; in topup_split_caches() 7123 * a few gfns are often aliased during boot, e.g. when remapping BIOS, in topup_split_caches() 7124 * but aliasing rarely occurs post-boot or for many gfns. If there is in topup_split_caches() 8077 * of gfns whose attributes are being modified needs to be explicitly in kvm_arch_pre_set_memory_attributes() [all …]
|
| H A D | paging_tmpl.h | 743 * KVM doesn't support mapping hugepages into the guest for gfns that in FNAME()
|
| /linux/include/linux/ |
| H A D | kvm_dirty_ring.h | 18 * @dirty_gfns: the array to keep the dirty gfns
|
| /linux/include/xen/interface/ |
| H A D | memory.h | 317 * entry, frame_list will be populated with a list of GFNs 321 * the GFNs.
|
| /linux/Documentation/virt/kvm/ |
| H A D | locking.rst | 145 - The pfn is writable and therefore it cannot be shared between different gfns
|
| H A D | api.rst | 6367 is '0' for all gfns. Userspace can control whether memory is shared/private by 8786 to read the dirty GFNs. If the flags has the DIRTY bit set (at this stage 8793 all the dirty GFNs that were available. 8800 It's not necessary for userspace to harvest the all dirty GFNs at once. 8801 However it must collect the dirty GFNs in sequence, i.e., the userspace 8806 it, so that the kernel will reprotect those collected GFNs. 8819 vmexit ensures that all dirty GFNs are flushed to the dirty rings.
|
| /linux/arch/x86/kvm/ |
| H A D | x86.c | 13886 while (vcpu->arch.apf.gfns[key] != ~0) in kvm_add_async_pf_gfn() 13889 vcpu->arch.apf.gfns[key] = gfn; in kvm_add_async_pf_gfn() 13898 (vcpu->arch.apf.gfns[key] != gfn && in kvm_async_pf_gfn_slot() 13899 vcpu->arch.apf.gfns[key] != ~0); i++) in kvm_async_pf_gfn_slot() 13907 return vcpu->arch.apf.gfns[kvm_async_pf_gfn_slot(vcpu, gfn)] == gfn; in kvm_find_async_pf_gfn() 13916 if (WARN_ON_ONCE(vcpu->arch.apf.gfns[i] != gfn)) in kvm_del_async_pf_gfn() 13920 vcpu->arch.apf.gfns[i] = ~0; in kvm_del_async_pf_gfn() 13923 if (vcpu->arch.apf.gfns[j] == ~0) in kvm_del_async_pf_gfn() 13925 k = kvm_async_pf_hash_fn(vcpu->arch.apf.gfns[j]); in kvm_del_async_pf_gfn() 13932 vcpu->arch.apf.gfns[i] = vcpu->arch.apf.gfns[j]; in kvm_del_async_pf_gfn()
|
| /linux/arch/x86/include/asm/ |
| H A D | kvm_host.h | 1057 gfn_t gfns[ASYNC_PF_PER_VCPU]; member
|
| /linux/arch/x86/kvm/vmx/ |
| H A D | tdx.c | 1984 * - a single RIP causing EPT violations for more GFNs than the in tdx_handle_ept_violation()
|