[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: arm: reduce the size of the xen heap to max 1/8 RAM size



At 12:01 +0100 on 08 Aug (1375963297), Ian Campbell wrote:
> On Tue, 2013-07-23 at 18:15 +0100, Ian Campbell wrote:
> > Hi Keir,
> > 
> > Was I mistaken about the domheap->xenheap fallback or have we cocked
> > something up on ARM?
> 
> Tim told me IRL that the fallback is deliberately not there. So I think
> this patch is correct.
> 
> @arm folks: ping ;-)

Acked-by: Tim Deegan <tim@xxxxxxx>

> 
> > 
> > Cheers,
> > Ian.
> > 
> > On Tue, 2013-07-23 at 18:12 +0100, Ian Campbell wrote:
> > > From: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > > 
> > > When building a 1GB dom0 on a system with 2GB RAM we are running out of 
> > > domheap
> > > pages, while there are still plenty of xenheap pages spare.
> > > 
> > > I would have sworn that when the domheap was exhausted we would fall back 
> > > to
> > > allocating xenheap pages but this doesn't appear to be the case. It's 
> > > possible
> > > that we have setup something incorrectly on ARM but alloc_domheap_pages 
> > > pretty
> > > clearly tries to allocate memory from MEMZONE_XEN+1..zone_hi.
> > > 
> > > Without the fallback from domheap to xenheap taking 1GB of any system 
> > > with >1GB
> > > of RAM for xenheap is excessive so instead set a limit of 1/8 of the total
> > > amount of RAM. By way of comparison x86_32 used to have a static 12MB 
> > > xenheap
> > > (which also included .text etc) and in theory supported up to 16GB RAM, 
> > > by that
> > > measure 1/8 is plenty.
> > > 
> > > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > > Cc: keir@xxxxxxx
> > > ---
> > >  xen/arch/arm/setup.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > > index 2f9fdc8..195c28e 100644
> > > --- a/xen/arch/arm/setup.c
> > > +++ b/xen/arch/arm/setup.c
> > > @@ -316,14 +316,14 @@ static void __init setup_mm(unsigned long 
> > > dtb_paddr, size_t dtb_size)
> > >       *
> > >       *  - must be 32 MiB aligned
> > >       *  - must not include Xen itself or the boot modules
> > > -     *  - must be at most 1 GiB
> > > +     *  - must be at most 1/8 the total RAM in the system
> > >       *  - must be at least 128M
> > >       *
> > >       * We try to allocate the largest xenheap possible within these
> > >       * constraints.
> > >       */
> > >      heap_pages = (ram_size >> PAGE_SHIFT);
> > > -    xenheap_pages = min(1ul << (30 - PAGE_SHIFT), heap_pages);
> > > +    xenheap_pages = max(heap_pages/8, 128UL<<(20-PAGE_SHIFT));
> > >  
> > >      do
> > >      {
> > 
> > 
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxx
> > http://lists.xen.org/xen-devel
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.