[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 12/18] mini-os: don't allocate new pages for level 1 p2m tree
Juergen Gross, on Fri 05 Aug 2016 19:35:56 +0200, wrote: > When constructing the 3 level p2m tree there is no need to allocate > new pages for the level 1 containing the p2m info for all pages. The > pages from the linear p2m list constructed by the hypervisor can be > used for that purpose. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> > --- > arch/x86/mm.c | 14 ++++---------- > 1 file changed, 4 insertions(+), 10 deletions(-) > > diff --git a/arch/x86/mm.c b/arch/x86/mm.c > index 12f7fe4..e10c2c5 100644 > --- a/arch/x86/mm.c > +++ b/arch/x86/mm.c > @@ -625,11 +625,11 @@ void arch_init_p2m(unsigned long max_pfn) > #define L2_P2M_MASK (L2_P2M_ENTRIES - 1) > #define L3_P2M_MASK (L3_P2M_ENTRIES - 1) > > - unsigned long *l1_list = NULL, *l2_list = NULL, *l3_list; > + unsigned long *l2_list = NULL, *l3_list; > unsigned long pfn; > > l3_list = (unsigned long *)alloc_page(); > - for ( pfn=0; pfn<max_pfn; pfn++ ) > + for ( pfn = 0; pfn < max_pfn; pfn += L1_P2M_ENTRIES ) > { > if ( !(pfn % (L1_P2M_ENTRIES * L2_P2M_ENTRIES)) ) > { > @@ -641,14 +641,8 @@ void arch_init_p2m(unsigned long max_pfn) > } > l3_list[(pfn >> L2_P2M_SHIFT)] = virt_to_mfn(l2_list); > } > - if ( !(pfn % (L1_P2M_ENTRIES)) ) > - { > - l1_list = (unsigned long*)alloc_page(); > - l2_list[(pfn >> L1_P2M_SHIFT) & L2_P2M_MASK] = > - virt_to_mfn(l1_list); > - } > - > - l1_list[pfn & L1_P2M_MASK] = pfn_to_mfn(pfn); > + l2_list[(pfn >> L1_P2M_SHIFT) & L2_P2M_MASK] = > + virt_to_mfn(phys_to_machine_mapping + pfn); > } > HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list = > virt_to_mfn(l3_list); > -- > 2.6.6 > -- Samuel >Ever heard of .cshrc? That's a city in Bosnia. Right? (Discussion in comp.os.linux.misc on the intuitiveness of commands.) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |