/xen/xen/arch/x86/mm/ |
A D | mem_paging.c | 43 .u.mem_paging.gfn = gfn_x(gfn) in p2m_mem_paging_drop_page() 96 .u.mem_paging.gfn = gfn_x(gfn) in p2m_mem_paging_populate() 119 gfn_lock(p2m, gfn, 0); in p2m_mem_paging_populate() 130 gfn_unlock(p2m, gfn, 0); in p2m_mem_paging_populate() 181 gfn_t gfn = _gfn(rsp->u.mem_access.gfn); in p2m_mem_paging_resume() local 228 gfn_lock(p2m, gfn, 0); in nominate() 257 gfn_unlock(p2m, gfn, 0); in nominate() 288 gfn_lock(p2m, gfn, 0); in evict() 330 gfn_unlock(p2m, gfn, 0); in evict() 358 gfn_lock(p2m, gfn, 0); in prepare() [all …]
|
A D | p2m-pt.c | 363 p2m_is_logdirty_range(p2m, gfn & mask, gfn | ~mask) >= 0 ) in do_recalc() 428 nt = p2m_recalc_type_range(true, ot, p2m, gfn & mask, gfn | ~mask); in do_recalc() 509 unsigned long gfn = gfn_x(gfn_); in p2m_pt_set_entry() local 537 u64 gfn, mfn; in p2m_pt_set_entry() member 542 t.gfn = gfn; in p2m_pt_set_entry() 552 rc = do_recalc(p2m, gfn); in p2m_pt_set_entry() 705 unsigned long gfn = gfn_x(gfn_); in p2m_pt_get_entry() local 726 if ( gfn > p2m->max_mapped_pfn ) in p2m_pt_get_entry() 872 unsigned long gfn = 0; in p2m_pt_change_entry_type_global() local 953 unsigned long mfn, gfn, m2pfn; in p2m_pt_audit_p2m() local [all …]
|
A D | mem_access.c | 64 if ( gfn_eq(gfn, INVALID_GFN) ) in _p2m_get_mem_access() 70 gfn_lock(p2m, gfn, 0); in _p2m_get_mem_access() 72 gfn_unlock(p2m, gfn, 0); in _p2m_get_mem_access() 148 gfn_t gfn = gaddr_to_gfn(gpa); in p2m_mem_access_check() local 165 gfn_lock(p2m, gfn, 0); in p2m_mem_access_check() 172 gfn_unlock(p2m, gfn, 0); in p2m_mem_access_check() 182 gfn_unlock(p2m, gfn, 0); in p2m_mem_access_check() 198 gfn_lock(p2m, gfn, 0); in p2m_mem_access_check() 209 gfn_unlock(p2m, gfn, 0); in p2m_mem_access_check() 236 req->u.mem_access.gfn = gfn_x(gfn); in p2m_mem_access_check() [all …]
|
A D | p2m.c | 491 gfn_t gfn = _gfn(gfn_l); in __get_gfn_type_access() local 548 gfn_unlock(p2m, gfn, 0); in __put_gfn() 647 gfn = gfn_add(gfn, 1ul << order); in p2m_set_entry() 1033 gfn_t gfn = _gfn(gfn_l); in p2m_change_type_one() local 1041 gfn_lock(p2m, gfn, 0); in p2m_change_type_one() 1212 gfn++; in finish_type_change() 1359 gfn_lock(p2m, gfn, 0); in set_identity_p2m_entry() 1449 gfn_lock(p2m, gfn, 0); in clear_identity_p2m_entry() 1484 gfn_lock(p2m, gfn, 0); in set_shared_p2m_entry() 2045 gfn_t gfn; in p2m_altp2m_get_or_propagate() local [all …]
|
A D | p2m-pod.c | 514 gfn_lock(p2m, gfn, order); in p2m_pod_decrease_reservation() 819 u64 gfn, mfn; in p2m_pod_zero_check_superpage() member 823 t.gfn = gfn_x(gfn); in p2m_pod_zero_check_superpage() 1090 gfn = _gfn(gfn_x(gfn) & ~POD_LAST_SUPERPAGE); in pod_eager_reclaim() 1096 for ( x = 0; x < SUPERPAGE_PAGES; ++x, gfn = gfn_add(gfn, 1) ) in pod_eager_reclaim() 1213 u64 gfn, mfn; in p2m_pod_demand_populate() member 1217 t.gfn = gfn_x(gfn); in p2m_pod_demand_populate() 1256 u64 gfn; in p2m_pod_demand_populate() member 1260 t.gfn = gfn_x(gfn); in p2m_pod_demand_populate() 1275 gfn_t gfn = _gfn(gfn_l); in guest_physmap_mark_populate_on_demand() local [all …]
|
A D | mem_sharing.c | 216 unsigned long gfn; member 345 if ( (gfn_info->gfn == gfn) && (gfn_info->domain == domain_id) ) in rmap_retrieve() 412 gfn_info->gfn = gfn; in mem_sharing_gfn_alloc() 604 .u.mem_sharing.gfn = gfn, in mem_sharing_notify_enomem() 804 gfn_t gfn; in debug_gref() local 950 gfn_info_t *gfn; in share_pages() local 1048 BUG_ON(set_shared_p2m_entry(d, gfn->gfn, smfn)); in share_pages() 1233 gfn); in __mem_sharing_unshare_page() 1330 put_gfn(d, gfn); in __mem_sharing_unshare_page() 1346 gfn <= p2m->max_mapped_pfn; gfn++ ) in relinquish_shared_pages() [all …]
|
A D | p2m-ept.c | 673 unsigned long gfn = gfn_x(gfn_); in ept_set_entry() local 674 unsigned long gfn_remainder = gfn; in ept_set_entry() 676 unsigned long fn_mask = !mfn_eq(mfn, INVALID_MFN) ? (gfn | mfn_x(mfn)) : gfn; in ept_set_entry() 704 ret = resolve_misconfig(p2m, gfn); in ept_set_entry() 883 unsigned long gfn = gfn_x(gfn_); in ept_get_entry() local 884 unsigned long gfn_remainder = gfn; in ept_get_entry() 898 if ( gfn > p2m->max_mapped_pfn ) in ept_get_entry() 1001 if ( gfn > p2m->max_mapped_pfn ) in ept_walk_table() 1318 unsigned long gfn, gfn_remainder; in ept_dump_p2m_table() local 1334 for ( gfn = 0; gfn <= p2m->max_mapped_pfn; gfn += 1UL << order ) in ept_dump_p2m_table() [all …]
|
/xen/tools/xenpaging/ |
A D | policy_default.c | 139 void policy_notify_paged_out(unsigned long gfn) in policy_notify_paged_out() argument 141 set_bit(gfn, bitmap); in policy_notify_paged_out() 142 clear_bit(gfn, unconsumed); in policy_notify_paged_out() 153 mru[i_mru & (mru_size - 1)] = gfn; in policy_handle_paged_in() 155 clear_bit(gfn, bitmap); in policy_handle_paged_in() 162 void policy_notify_paged_in(unsigned long gfn) in policy_notify_paged_in() argument 164 policy_handle_paged_in(gfn, 1); in policy_notify_paged_in() 167 void policy_notify_paged_in_nomru(unsigned long gfn) in policy_notify_paged_in_nomru() argument 169 policy_handle_paged_in(gfn, 0); in policy_notify_paged_in_nomru() 172 void policy_notify_dropped(unsigned long gfn) in policy_notify_dropped() argument [all …]
|
A D | xenpaging.c | 599 xen_pfn_t victim = gfn; in xenpaging_evict_page() 620 PERROR("Error mapping page %lx", gfn); in xenpaging_evict_page() 629 PERROR("Error copying page %lx", gfn); in xenpaging_evict_page() 654 policy_notify_paged_out(gfn); in xenpaging_evict_page() 657 paging->slot_to_gfn[slot] = gfn; in xenpaging_evict_page() 658 paging->gfn_to_slot[gfn] = slot; in xenpaging_evict_page() 764 unsigned long gfn; in evict_victim() local 770 gfn = policy_choose_victim(paging); in evict_victim() 771 if ( gfn == INVALID_MFN ) in evict_victim() 948 rsp.u.mem_paging.gfn = req.u.mem_paging.gfn; in main() [all …]
|
A D | policy.h | 32 void policy_notify_paged_out(unsigned long gfn); 33 void policy_notify_paged_in(unsigned long gfn); 34 void policy_notify_paged_in_nomru(unsigned long gfn); 35 void policy_notify_dropped(unsigned long gfn);
|
/xen/tools/libxc/ |
A D | xc_mem_paging.c | 26 unsigned int op, uint64_t gfn, void *buffer) in xc_mem_paging_memop() argument 37 mpo.gfn = gfn; in xc_mem_paging_memop() 89 int xc_mem_paging_nominate(xc_interface *xch, uint32_t domain_id, uint64_t gfn) in xc_mem_paging_nominate() argument 93 gfn, NULL); in xc_mem_paging_nominate() 96 int xc_mem_paging_evict(xc_interface *xch, uint32_t domain_id, uint64_t gfn) in xc_mem_paging_evict() argument 100 gfn, NULL); in xc_mem_paging_evict() 103 int xc_mem_paging_prep(xc_interface *xch, uint32_t domain_id, uint64_t gfn) in xc_mem_paging_prep() argument 107 gfn, NULL); in xc_mem_paging_prep() 111 uint64_t gfn, void *buffer) in xc_mem_paging_load() argument 119 gfn, buffer); in xc_mem_paging_load()
|
A D | xc_altp2m.c | 72 uint32_t vcpuid, xen_pfn_t gfn) in xc_altp2m_set_vcpu_enable_notify() argument 85 arg->u.enable_notify.gfn = gfn; in xc_altp2m_set_vcpu_enable_notify() 188 uint16_t view_id, xen_pfn_t gfn, bool *sve) in xc_altp2m_get_suppress_ve() argument 201 arg->u.suppress_ve.gfn = gfn; in xc_altp2m_get_suppress_ve() 214 uint16_t view_id, xen_pfn_t gfn, bool sve) in xc_altp2m_set_suppress_ve() argument 227 arg->u.suppress_ve.gfn = gfn; in xc_altp2m_set_suppress_ve() 271 uint16_t view_id, xen_pfn_t gfn, in xc_altp2m_set_mem_access() argument 286 arg->u.mem_access.gfn = gfn; in xc_altp2m_set_mem_access() 363 uint16_t view_id, xen_pfn_t gfn, in xc_altp2m_get_mem_access() argument 377 arg->u.mem_access.gfn = gfn; in xc_altp2m_get_mem_access()
|
/xen/xen/include/asm-arm/ |
A D | p2m.h | 238 mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn, 277 gfn_t gfn, 283 gfn_t gfn, 288 gfn_t gfn, 293 gfn_t gfn, 300 gfn_t gfn, in guest_physmap_add_page() argument 307 mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn); 329 return p2m_get_page_from_gfn(d, _gfn(gfn), t); in get_page_from_gfn() 340 mfn = _mfn(gfn); in get_page_from_gfn() 390 gfn = _gfn(gfn_x(gfn) & ~((1UL << order) - 1)); in gfn_next_boundary() [all …]
|
/xen/tools/tests/mem-sharing/ |
A D | memshrtool.c | 98 unsigned long gfn; in main() local 105 gfn = strtol(argv[3], NULL, 0); in main() 112 unsigned long gfn; in main() local 122 gfn = strtol(argv[3], NULL, 0); in main() 132 unsigned long gfn; in main() local 139 gfn = strtol(argv[3], NULL, 0); in main() 148 unsigned long gfn; in main() local 157 gfn = strtol(argv[3], NULL, 0); in main() 166 unsigned long gfn; in main() local 172 gfn = strtol(argv[3], NULL, 0); in main() [all …]
|
/xen/xen/include/asm-x86/ |
A D | p2m.h | 242 gfn_t gfn, 248 gfn_t gfn, 255 unsigned long gfn); 454 void __put_gfn(struct p2m_domain *p2m, unsigned long gfn); 456 #define put_gfn(d, gfn) __put_gfn(p2m_get_hostp2m((d)), (gfn)) argument 500 page = mfn_to_page(_mfn(gfn)); in get_page_from_gfn() 549 rval-> dest ## _gfn = source ## gfn; \ in get_two_gfns() 596 int guest_physmap_add_entry(struct domain *d, gfn_t gfn, 737 void p2m_mem_paging_populate(struct domain *d, gfn_t gfn); 821 unsigned long gfn) in p2m_recalc_type() argument [all …]
|
A D | mem_sharing.h | 69 unsigned long gfn, 73 unsigned long gfn) in mem_sharing_unshare_page() argument 75 int rc = __mem_sharing_unshare_page(d, gfn, false); in mem_sharing_unshare_page() 85 int mem_sharing_fork_page(struct domain *d, gfn_t gfn, 101 int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn, 128 static inline int mem_sharing_unshare_page(struct domain *d, unsigned long gfn) in mem_sharing_unshare_page() argument 134 static inline int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn, in mem_sharing_notify_enomem() argument 146 static inline int mem_sharing_fork_page(struct domain *d, gfn_t gfn, bool lock) in mem_sharing_fork_page() argument
|
A D | guest_pt.h | 36 gfn_to_paddr(gfn_t gfn) in gfn_to_paddr() argument 38 return ((paddr_t)gfn_x(gfn)) << PAGE_SHIFT; in gfn_to_paddr() 93 { return (guest_l1e_t) { (gfn_x(gfn) << PAGE_SHIFT) | flags }; } in guest_l1e_from_gfn() 95 { return (guest_l2e_t) { (gfn_x(gfn) << PAGE_SHIFT) | flags }; } in guest_l2e_from_gfn() 180 { return l1e_from_pfn(gfn_x(gfn), flags); } in guest_l1e_from_gfn() 182 { return l2e_from_pfn(gfn_x(gfn), flags); } in guest_l2e_from_gfn() 184 { return l3e_from_pfn(gfn_x(gfn), flags); } in guest_l3e_from_gfn() 187 { return l4e_from_pfn(gfn_x(gfn), flags); } in guest_l4e_from_gfn() 382 gfn_t gfn = guest_walk_to_gfn(gw); in guest_walk_to_gpa() local 384 if ( gfn_eq(gfn, INVALID_GFN) ) in guest_walk_to_gpa() [all …]
|
/xen/xen/arch/arm/ |
A D | mem_access.c | 60 if ( gfn_eq(gfn, INVALID_GFN) ) in __p2m_get_mem_access() 108 gfn_t gfn; in p2m_mem_access_check_and_get_page() local 146 gfn = gaddr_to_gfn(ipa); in p2m_mem_access_check_and_get_page() 154 rc = __p2m_get_mem_access(v->domain, gfn, &xma); in p2m_mem_access_check_and_get_page() 325 req->u.mem_access.gfn = gpa >> PAGE_SHIFT; in p2m_mem_access_check() 397 if ( gfn_eq(gfn, INVALID_GFN) ) in p2m_set_mem_access() 405 for ( gfn = gfn_add(gfn, start); nr > start; in p2m_set_mem_access() 406 gfn = gfn_next_boundary(gfn, order) ) in p2m_set_mem_access() 420 start += gfn_x(gfn_next_boundary(gfn, order)) - gfn_x(gfn); in p2m_set_mem_access() 444 int p2m_get_mem_access(struct domain *d, gfn_t gfn, in p2m_get_mem_access() argument [all …]
|
A D | p2m.c | 225 gfn_t gfn) in p2m_get_root_pointer() argument 355 paddr_t addr = gfn_to_gaddr(gfn); in p2m_get_entry() 387 table = p2m_get_root_pointer(p2m, gfn); in p2m_get_entry() 456 mfn_t mfn = p2m_lookup(d, gfn, &p2mt); in p2m_get_page_from_gfn() 1194 table = p2m_get_root_pointer(p2m, gfn); in p2m_resolve_translation_fault() 1315 gfn_t gfn, in map_regions_p2mt() argument 1324 gfn_t gfn, in unmap_regions_p2mt() argument 1348 gfn_t gfn, in map_dev_mmio_region() argument 1369 gfn_t gfn, in guest_physmap_add_entry() argument 1816 mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn) in gfn_to_mfn() argument [all …]
|
/xen/xen/arch/x86/ |
A D | debug.c | 30 dbg_hvm_va2mfn(dbgva_t vaddr, struct domain *dp, int toaddr, gfn_t *gfn) in dbg_hvm_va2mfn() argument 36 *gfn = _gfn(paging_gva_to_gfn(dp->vcpu[0], vaddr, &pfec)); in dbg_hvm_va2mfn() 37 if ( gfn_eq(*gfn, INVALID_GFN) ) in dbg_hvm_va2mfn() 40 mfn = get_gfn(dp, gfn_x(*gfn), &gfntype); in dbg_hvm_va2mfn() 46 put_gfn(dp, gfn_x(*gfn)); in dbg_hvm_va2mfn() 47 *gfn = INVALID_GFN; in dbg_hvm_va2mfn() 120 gfn_t gfn = INVALID_GFN; in dbg_rw_guest_mem() local 126 ? dbg_hvm_va2mfn(addr, dp, toaddr, &gfn) in dbg_rw_guest_mem() 145 if ( !gfn_eq(gfn, INVALID_GFN) ) in dbg_rw_guest_mem() 146 put_gfn(dp, gfn_x(gfn)); in dbg_rw_guest_mem()
|
/xen/xen/arch/x86/hvm/ |
A D | grant_table.c | 54 unsigned long gfn = (unsigned long)(addr >> PAGE_SHIFT); in replace_grant_p2m_mapping() local 62 old_mfn = get_gfn_query(d, gfn, &type); in replace_grant_p2m_mapping() 65 put_gfn(d, gfn); in replace_grant_p2m_mapping() 71 if ( guest_physmap_remove_page(d, _gfn(gfn), frame, PAGE_ORDER_4K) ) in replace_grant_p2m_mapping() 73 put_gfn(d, gfn); in replace_grant_p2m_mapping() 77 put_gfn(d, gfn); in replace_grant_p2m_mapping()
|
A D | monitor.c | 155 req.u.software_breakpoint.gfn = gfn_of_rip(rip); in hvm_monitor_debug() 173 req.u.singlestep.gfn = gfn_of_rip(rip); in hvm_monitor_debug() 181 req.u.debug_exception.gfn = gfn_of_rip(rip); in hvm_monitor_debug() 232 bool hvm_monitor_check_p2m(unsigned long gla, gfn_t gfn, uint32_t pfec, in hvm_monitor_check_p2m() argument 238 paddr_t gpa = (gfn_to_gaddr(gfn) | (gla & ~PAGE_MASK)); in hvm_monitor_check_p2m() 247 rc = p2m_get_mem_access(curr->domain, gfn, &access, altp2m_vcpu_idx(curr)); in hvm_monitor_check_p2m() 296 req.u.mem_access.gfn = gfn_x(gfn); in hvm_monitor_check_p2m()
|
/xen/xen/include/xen/ |
A D | grant_table.h | 55 gfn_t *gfn, uint16_t *status); 57 int gnttab_map_frame(struct domain *d, unsigned long idx, gfn_t gfn, 85 gfn_t *gfn, uint16_t *status) in mem_sharing_gref_to_gfn() argument 91 gfn_t gfn, mfn_t *mfn) in gnttab_map_frame() argument
|
A D | p2m-common.h | 8 guest_physmap_remove_page(struct domain *d, gfn_t gfn, mfn_t mfn, 32 p2m_pod_decrease_reservation(struct domain *d, gfn_t gfn, 35 int __must_check check_get_page_from_gfn(struct domain *d, gfn_t gfn,
|
/xen/xen/arch/x86/mm/hap/ |
A D | guest_walk.c | 102 gfn_t gfn = guest_walk_to_gfn(&gw); in hap_p2m_ga_to_gfn() local 105 page = p2m_get_page_from_gfn(p2m, gfn, &p2mt, NULL, in hap_p2m_ga_to_gfn() 113 p2m_mem_paging_populate(p2m->domain, gfn); in hap_p2m_ga_to_gfn() 125 return gfn_x(gfn); in hap_p2m_ga_to_gfn()
|