/xen-4.10.0-shim-comet/xen/arch/x86/mm/ |
A D | p2m-pod.c | 343 pod_lock(p2m); in p2m_pod_set_mem_target() 435 pod_lock(p2m); in p2m_pod_offline_or_broken_hit() 494 pod_lock(p2m); in p2m_pod_offline_or_broken_replace() 538 steal_for_cache = ( p2m->pod.entry_count > p2m->pod.count ); in p2m_pod_decrease_reservation() 679 if ( p2m->pod.entry_count < p2m->pod.count ) in p2m_pod_decrease_reservation() 695 p2m->pod.entry_count, p2m->pod.count); in p2m_pod_dump_data() 742 mfn = p2m->get_entry(p2m, gfn_add(gfn, i), &type, &a, 0, in p2m_pod_zero_check_superpage() 898 mfns[i] = p2m->get_entry(p2m, gfns[i], types + i, &a, in p2m_pod_zero_check() 1046 p2m->pod.reclaim_single = p2m->pod.max_guest; in p2m_pod_emergency_sweep() 1186 if ( p2m->pod.entry_count > p2m->pod.count ) in p2m_pod_demand_populate() [all …]
|
A D | p2m.c | 130 d->arch.p2m = p2m; in p2m_init_hostp2m() 275 p2m->change_entry_type_global(p2m, ot, nt); in p2m_change_entry_type_global() 287 p2m->memory_type_changed(p2m); in p2m_memory_type_changed() 364 p2m->enable_hardware_log_dirty(p2m); in p2m_enable_hardware_log_dirty() 376 p2m->disable_hardware_log_dirty(p2m); in p2m_disable_hardware_log_dirty() 388 p2m->flush_hardware_cached_dirty(p2m); in p2m_flush_hardware_cached_dirty() 402 p2m->tlb_flush(p2m); in p2m_tlb_flush_sync() 414 p2m->tlb_flush(p2m); in p2m_unlock_and_tlb_flush() 430 if ( !p2m || !paging_mode_translate(p2m->domain) ) in __get_gfn_type_access() 1048 rc = p2m->recalc(p2m, gfn); in p2m_finish_type_change() [all …]
|
A D | p2m-ept.c | 272 p2m_tlb_flush_sync(p2m); in ept_free_entry() 659 p2m_lock(p2m); in ept_handle_misconfig() 665 p2m_unlock(p2m); in ept_handle_misconfig() 1097 if ( !p2m->ept.mfn ) in ept_change_entry_type_range() 1203 ept_sync_domain_mask(p2m, p2m->domain->domain_dirty_cpumask); in ept_tlb_flush() 1220 p2m->ept.ad = 1; in ept_enable_pml() 1232 p2m->ept.ad = 0; in ept_disable_pml() 1254 p2m->audit_p2m = NULL; in ept_p2m_init() 1321 ept = &p2m->ept; in ept_dump_p2m_table() 1378 ept = &p2m->ept; in p2m_init_altp2m_ept() [all …]
|
A D | mem_access.c | 69 mfn = p2m->get_entry(p2m, gfn, &t, &a, 0, NULL, NULL); in _p2m_get_mem_access() 93 if ( !p2m ) in p2m_mem_access_emulate_check() 156 if ( !p2m ) in p2m_mem_access_check() 163 mfn = p2m->get_entry(p2m, gfn, &p2mt, &p2ma, 0, NULL, NULL); in p2m_mem_access_check() 175 rc = p2m->set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, in p2m_mem_access_check() 196 mfn = p2m->get_entry(p2m, gfn, &p2mt, &p2ma, 0, NULL, NULL); in p2m_mem_access_check() 202 rc = p2m->set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, in p2m_mem_access_check() 299 mfn = p2m->get_entry(p2m, gfn, &t, &_a, 0, NULL, NULL); in set_mem_access() 300 rc = p2m->set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, t, a, -1); in set_mem_access() 373 p2m_lock(p2m); in p2m_set_mem_access() [all …]
|
A D | p2m-pt.c | 210 p2m->write_p2m_entry(p2m, gfn, p2m_entry, new_entry, level + 1); in p2m_next_level() 265 p2m->write_p2m_entry(p2m, gfn, p2m_entry, new_entry, level + 1); in p2m_next_level() 329 p2m->write_p2m_entry(p2m, first_gfn, pent, e, level); in p2m_pt_set_recalc_range() 407 p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1); in do_recalc() 459 p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1); in do_recalc() 473 p2m_lock(p2m); in p2m_pt_handle_deferred_changes() 475 p2m_unlock(p2m); in p2m_pt_handle_deferred_changes() 585 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 3); in p2m_pt_set_entry() 640 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 1); in p2m_pt_set_entry() 677 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 2); in p2m_pt_set_entry() [all …]
|
A D | Makefile | 5 obj-y += p2m.o p2m-pt.o p2m-ept.o p2m-pod.o
|
A D | altp2m.c | 51 struct p2m_domain *p2m; in altp2m_vcpu_destroy() local 56 if ( (p2m = p2m_get_altp2m(v)) ) in altp2m_vcpu_destroy() 57 atomic_dec(&p2m->active_vcpus); in altp2m_vcpu_destroy()
|
A D | guest_walk.c | 83 guest_walk_tables(struct vcpu *v, struct p2m_domain *p2m, in guest_walk_tables() argument 153 l3p = map_domain_gfn(p2m, in guest_walk_tables() 232 l2p = map_domain_gfn(p2m, in guest_walk_tables() 326 l1p = map_domain_gfn(p2m, in guest_walk_tables()
|
A D | mem_sharing.c | 1018 struct p2m_domain *p2m = p2m_get_hostp2m(cd); in mem_sharing_add_to_physmap() local 1055 ret = p2m_set_entry(p2m, _gfn(cgfn), smfn, PAGE_ORDER_4K, in mem_sharing_add_to_physmap() 1216 struct p2m_domain *p2m = p2m_get_hostp2m(d); in relinquish_shared_pages() local 1219 if ( p2m == NULL ) in relinquish_shared_pages() 1222 p2m_lock(p2m); in relinquish_shared_pages() 1223 for ( gfn = p2m->next_shared_gfn_to_relinquish; in relinquish_shared_pages() 1224 gfn <= p2m->max_mapped_pfn; gfn++ ) in relinquish_shared_pages() 1233 mfn = p2m->get_entry(p2m, _gfn(gfn), &t, &a, 0, NULL, NULL); in relinquish_shared_pages() 1242 set_rc = p2m->set_entry(p2m, _gfn(gfn), _mfn(0), PAGE_ORDER_4K, in relinquish_shared_pages() 1255 p2m->next_shared_gfn_to_relinquish = gfn + 1; in relinquish_shared_pages() [all …]
|
A D | mm-locks.h | 247 declare_mm_rwlock(p2m); 295 mm_write_lock(p2m, &(p)->lock); \ 307 #define p2m_read_lock(p) mm_read_lock(p2m, &(p)->lock)
|
/xen-4.10.0-shim-comet/xen/arch/arm/ |
A D | p2m.c | 78 p2m_read_lock(p2m); in p2m_dump_info() 81 BUG_ON(p2m->stats.mappings[0] || p2m->stats.shattered[0]); in p2m_dump_info() 83 p2m->stats.mappings[1], p2m->stats.shattered[1]); in p2m_dump_info() 85 p2m->stats.mappings[2], p2m->stats.shattered[2]); in p2m_dump_info() 101 p2m->root, __page_to_mfn(p2m->root)); in dump_p2m_lookup() 468 e->p2m.read = e->p2m.write = 0; in p2m_set_permission() 481 .p2m.af = 1, in mfn_to_p2m_entry() 952 p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn, in __p2m_set_entry() 1141 p2m->vttbr = page_to_maddr(p2m->root) | ((uint64_t)p2m->vmid << 48); in p2m_alloc_table() 1197 p2m->vmid = nr; in p2m_alloc_vmid() [all …]
|
A D | mem_access.c | 49 ASSERT(p2m_is_locked(p2m)); in __p2m_get_mem_access() 52 if ( !p2m->mem_access_enabled ) in __p2m_get_mem_access() 232 if ( !p2m->mem_access_enabled ) in p2m_mem_access_check() 291 if ( p2m->access_required ) in p2m_mem_access_check() 379 a = p2m->default_access; in p2m_set_mem_access() 389 p2m->mem_access_enabled = true; in p2m_set_mem_access() 394 p2m->default_access = a; in p2m_set_mem_access() 398 p2m_write_lock(p2m); in p2m_set_mem_access() 424 p2m_write_unlock(p2m); in p2m_set_mem_access() 445 p2m_read_lock(p2m); in p2m_get_mem_access() [all …]
|
/xen-4.10.0-shim-comet/xen/include/asm-x86/ |
A D | p2m.h | 281 void (*tlb_flush)(struct p2m_domain *p2m); 361 #define p2m_get_hostp2m(d) ((d)->arch.p2m) 382 return p2m->p2m_class == p2m_host; in p2m_is_hostp2m() 387 return p2m->p2m_class == p2m_nested; in p2m_is_nestedp2m() 392 return p2m->p2m_class == p2m_alternate; in p2m_is_altp2m() 395 #define p2m_get_pagetable(p2m) ((p2m)->phys_table) argument 400 void p2m_tlb_flush_sync(struct p2m_domain *p2m); 401 void p2m_unlock_and_tlb_flush(struct p2m_domain *p2m); 567 int p2m_alloc_table(struct p2m_domain *p2m); 570 void p2m_teardown(struct p2m_domain *p2m); [all …]
|
A D | paging.h | 117 struct p2m_domain *p2m, 121 struct p2m_domain *p2m, 271 struct p2m_domain *p2m = v->domain->arch.p2m; in paging_ga_to_gfn_cr3() local 272 return paging_get_hostmode(v)->p2m_ga_to_gfn(v, p2m, cr3, ga, pfec, in paging_ga_to_gfn_cr3() 342 void paging_write_p2m_entry(struct p2m_domain *p2m, unsigned long gfn,
|
/xen-4.10.0-shim-comet/xen/arch/x86/mm/hap/ |
A D | nested_hap.c | 81 struct domain *d = p2m->domain; in nestedp2m_write_p2m_entry() 90 flush_tlb_mask(p2m->dirty_cpumask); in nestedp2m_write_p2m_entry() 99 nestedhap_fix_p2m(struct vcpu *v, struct p2m_domain *p2m, in nestedhap_fix_p2m() argument 107 ASSERT(p2m); in nestedhap_fix_p2m() 108 ASSERT(p2m->set_entry); in nestedhap_fix_p2m() 109 ASSERT(p2m_locked_by_me(p2m)); in nestedhap_fix_p2m() 126 domain_crash(p2m->domain); in nestedhap_fix_p2m() 184 __put_gfn(p2m, L1_gpa >> PAGE_SHIFT); in nestedhap_walk_L0_p2m() 200 struct p2m_domain *p2m, *nested_p2m; in nestedhvm_hap_nested_page_fault() local 206 p2m = p2m_get_hostp2m(d); /* L0 p2m */ in nestedhvm_hap_nested_page_fault() [all …]
|
A D | guest_walk.c | 43 struct vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec) in hap_gva_to_gfn() 46 return hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(v, p2m, cr3, gva, pfec, NULL); in hap_gva_to_gfn() 50 struct vcpu *v, struct p2m_domain *p2m, unsigned long cr3, in hap_p2m_ga_to_gfn() 63 top_page = p2m_get_page_from_gfn(p2m, top_gfn, &p2mt, NULL, in hap_p2m_ga_to_gfn() 67 ASSERT(p2m_is_hostp2m(p2m)); in hap_p2m_ga_to_gfn() 71 p2m_mem_paging_populate(p2m->domain, cr3 >> PAGE_SHIFT); in hap_p2m_ga_to_gfn() 94 walk_ok = guest_walk_tables(v, p2m, ga, &gw, *pfec, top_mfn, top_map); in hap_p2m_ga_to_gfn() 104 page = p2m_get_page_from_gfn(p2m, gfn, &p2mt, NULL, in hap_p2m_ga_to_gfn() 110 ASSERT(p2m_is_hostp2m(p2m)); in hap_p2m_ga_to_gfn() 112 p2m_mem_paging_populate(p2m->domain, gfn_x(gfn)); in hap_p2m_ga_to_gfn()
|
A D | private.h | 28 struct p2m_domain *p2m, 32 struct p2m_domain *p2m, 36 struct p2m_domain *p2m, 41 struct p2m_domain *p2m, unsigned long cr3, 44 struct p2m_domain *p2m, unsigned long cr3, 47 struct p2m_domain *p2m, unsigned long cr3,
|
A D | nested_ept.c | 162 struct p2m_domain *p2m = d->arch.p2m; in nept_walk_tables() local 171 lxp = map_domain_gfn(p2m, base_gfn, &lxmfn, &p2mt, P2M_ALLOC, &rc); in nept_walk_tables()
|
/xen-4.10.0-shim-comet/xen/include/asm-arm/ |
A D | p2m.h | 182 write_lock(&p2m->lock); in p2m_write_lock() 185 void p2m_write_unlock(struct p2m_domain *p2m); 187 static inline void p2m_read_lock(struct p2m_domain *p2m) in p2m_read_lock() argument 189 read_lock(&p2m->lock); in p2m_read_lock() 194 read_unlock(&p2m->lock); in p2m_read_unlock() 197 static inline int p2m_is_locked(struct p2m_domain *p2m) in p2m_is_locked() argument 199 return rw_is_locked(&p2m->lock); in p2m_is_locked() 204 return rw_is_write_locked(&p2m->lock); in p2m_is_write_locked() 214 mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn, 222 int p2m_set_entry(struct p2m_domain *p2m, [all …]
|
/xen-4.10.0-shim-comet/tools/libxc/ |
A D | xc_resume.c | 148 xen_pfn_t *p2m = NULL; in xc_domain_resume_any() local 208 p2m = xc_map_foreign_pages(xch, domid, PROT_READ, in xc_domain_resume_any() 211 if ( p2m == NULL ) in xc_domain_resume_any() 233 start_info->store_mfn = p2m[start_info->store_mfn]; in xc_domain_resume_any() 234 start_info->console.domU.mfn = p2m[start_info->console.domU.mfn]; in xc_domain_resume_any() 254 if (p2m) in xc_domain_resume_any() 255 munmap(p2m, P2M_FL_ENTRIES*PAGE_SIZE); in xc_domain_resume_any()
|
A D | xg_private.h | 110 static inline xen_pfn_t xc_pfn_to_mfn(xen_pfn_t pfn, xen_pfn_t *p2m, in xc_pfn_to_mfn() argument 115 return ((uint64_t *)p2m)[pfn]; in xc_pfn_to_mfn() 119 uint32_t mfn = ((uint32_t *)p2m)[pfn]; in xc_pfn_to_mfn()
|
A D | xc_sr_restore_x86_pv.c | 9 return xc_pfn_to_mfn(pfn, ctx->x86_pv.p2m, ctx->x86_pv.width); in pfn_to_mfn() 25 xen_pfn_t *p2m = NULL, *p2m_pfns = NULL; in expand_p2m() local 32 p2m = realloc(ctx->x86_pv.p2m, p2msz); in expand_p2m() 33 if ( !p2m ) in expand_p2m() 38 ctx->x86_pv.p2m = p2m; in expand_p2m() 574 memcpy(guest_p2m, ctx->x86_pv.p2m, in update_guest_p2m() 933 ((uint64_t *)ctx->x86_pv.p2m)[pfn] = mfn == INVALID_MFN ? ~0ULL : mfn; in x86_pv_set_gfn() 936 ((uint32_t *)ctx->x86_pv.p2m)[pfn] = mfn; in x86_pv_set_gfn() 1126 free(ctx->x86_pv.p2m); in x86_pv_cleanup()
|
A D | xc_core.c | 447 xen_pfn_t *p2m = NULL; in xc_domain_dumpcore_via_callback() local 548 &p2m, &dinfo->p2m_size); in xc_domain_dumpcore_via_callback() 808 gmfn = p2m[i]; in xc_domain_dumpcore_via_callback() 810 gmfn = ((uint64_t *)p2m)[i]; in xc_domain_dumpcore_via_callback() 816 gmfn = ((uint32_t *)p2m)[i]; in xc_domain_dumpcore_via_callback() 898 if ( p2m != NULL ) in xc_domain_dumpcore_via_callback() 899 munmap(p2m, PAGE_SIZE * P2M_FL_ENTRIES); in xc_domain_dumpcore_via_callback()
|
/xen-4.10.0-shim-comet/xen/arch/x86/hvm/ |
A D | nestedhvm.c | 116 nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m) in nestedhvm_vmcx_flushtlb() argument 118 on_selected_cpus(p2m->dirty_cpumask, nestedhvm_flushtlb_ipi, in nestedhvm_vmcx_flushtlb() 119 p2m->domain, 1); in nestedhvm_vmcx_flushtlb() 120 cpumask_clear(p2m->dirty_cpumask); in nestedhvm_vmcx_flushtlb()
|
/xen-4.10.0-shim-comet/xen/include/asm-x86/hvm/vmx/ |
A D | vmx.h | 525 void ept_sync_domain(struct p2m_domain *p2m); 588 int ept_p2m_init(struct p2m_domain *p2m); 589 void ept_p2m_uninit(struct p2m_domain *p2m); 600 int alloc_p2m_hap_data(struct p2m_domain *p2m); 601 void free_p2m_hap_data(struct p2m_domain *p2m); 602 void p2m_init_hap_data(struct p2m_domain *p2m);
|