[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 10/18] arm/altp2m: Renamed and extended p2m_alloc_table.
Hello Julien, On 07/04/2016 08:43 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> +int p2m_table_init(struct domain *d) >> +{ >> + int i = 0; >> + int rc = -ENOMEM; >> + struct p2m_domain *p2m = p2m_get_hostp2m(d); >> + >> + spin_lock(&p2m->lock); >> + >> + rc = p2m_alloc_table(p2m); >> + if ( rc != 0 ) >> + goto out; >> + >> + d->arch.vttbr = d->arch.p2m.vttbr.vttbr; >> + >> + /* >> + * Make sure that all TLBs corresponding to the new VMID are >> flushed >> + * before using it. >> */ >> flush_tlb_domain(d); >> >> spin_unlock(&p2m->lock); >> >> - return 0; >> + if ( hvm_altp2m_supported() ) >> + { >> + /* Init alternate p2m data */ >> + for ( i = 0; i < MAX_ALTP2M; i++ ) >> + { >> + d->arch.altp2m_vttbr[i] = INVALID_MFN; >> + rc = p2m_alloc_table(d->arch.altp2m_p2m[i]); > > Why do we need to allocate all the altp2m root page tables at the > creation of the domain? This is wasting up to 80KB (2-root page for 10 > altp2m) per domain even if it may not be used at all by the domain. > As previously discussed in patch #05, I will change this behavior in a way that altp2m views will be allocated at run time only when they are needed. Thank you. >> + if ( rc != 0 ) >> + goto out; >> + } >> + >> + d->arch.altp2m_active = 0; >> + } >> + >> +out: >> + return rc; >> } >> >> #define MAX_VMID 256 >> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h >> index 783db5c..451b097 100644 >> --- a/xen/include/asm-arm/p2m.h >> +++ b/xen/include/asm-arm/p2m.h >> @@ -171,7 +171,7 @@ int relinquish_p2m_mapping(struct domain *d); >> * >> * Returns 0 for success or -errno. >> */ >> -int p2m_alloc_table(struct domain *d); >> +int p2m_table_init(struct domain *d); >> >> /* Context switch */ >> void p2m_save_state(struct vcpu *p); >> > > Regards, > Best, ~Sergej _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |