[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Embedded-pv-devel] [PATCH RFC 03/18] xen/arm: allow to allocate 1/128/256/512 Mb memory chunks
From: Andrii Tseglytskyi <andrii.tseglytskyi@xxxxxxxxxxxxxxx> This is done to allow possibility of having 1 to 1 memory mapping chunks with size 1/128/256/512 Mb what can sagnificantly decrease time of memory allocation and fragmentation for 1-to-1 mapped domains. Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@xxxxxxxxxxxxxxx> Signed-off-by: Iurii Konovalenko <iurii.konovalenko@xxxxxxxxxxxxxxx> --- tools/libxc/xc_dom_arm.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c index aeaba54..5ee8eef 100644 --- a/tools/libxc/xc_dom_arm.c +++ b/tools/libxc/xc_dom_arm.c @@ -33,7 +33,11 @@ #define LPAE_SHIFT 9 #define PFN_4K_SHIFT (0) +#define PFN_1M_SHIFT (PFN_4K_SHIFT + 8) #define PFN_2M_SHIFT (PFN_4K_SHIFT+LPAE_SHIFT) +#define PFN_128M_SHIFT (PFN_2M_SHIFT + 6) +#define PFN_256M_SHIFT (PFN_128M_SHIFT + 1) +#define PFN_512M_SHIFT (PFN_256M_SHIFT + 1) #define PFN_1G_SHIFT (PFN_2M_SHIFT+LPAE_SHIFT) #define PFN_512G_SHIFT (PFN_1G_SHIFT+LPAE_SHIFT) @@ -359,11 +363,31 @@ static int populate_guest_memory(struct xc_dom_image *dom, if ( rc < 0 ) break; if ( rc > 0 ) continue; + rc = populate_one_size(dom, PFN_512M_SHIFT, + base_pfn + pfn, &allocsz, extents); + if ( rc < 0 ) break; + if ( rc > 0 ) continue; + + rc = populate_one_size(dom, PFN_256M_SHIFT, + base_pfn + pfn, &allocsz, extents); + if ( rc < 0 ) break; + if ( rc > 0 ) continue; + + rc = populate_one_size(dom, PFN_128M_SHIFT, + base_pfn + pfn, &allocsz, extents); + if ( rc < 0 ) break; + if ( rc > 0 ) continue; + rc = populate_one_size(dom, PFN_2M_SHIFT, base_pfn + pfn, &allocsz, extents); if ( rc < 0 ) break; if ( rc > 0 ) continue; + rc = populate_one_size(dom, PFN_1M_SHIFT, + base_pfn + pfn, &allocsz, extents); + if ( rc < 0 ) break; + if ( rc > 0 ) continue; + rc = populate_one_size(dom, PFN_4K_SHIFT, base_pfn + pfn, &allocsz, extents); if ( rc < 0 ) break; -- 2.8.2 _______________________________________________ Embedded-pv-devel mailing list Embedded-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/embedded-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |