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

Re: [Xen-devel] [RFC/PATCH v2] XENMEM_claim_pages (subop of existing) hypercall



> From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx]
> Subject: Re: [Xen-devel] [RFC/PATCH v2] XENMEM_claim_pages (subop of 
> existing) hypercall
> 
> On Tue, 2012-11-20 at 08:16 +0000, Jan Beulich wrote:
> > >>> On 19.11.12 at 21:53, Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> 
> > >>> wrote:
> > >>  From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx]
> > >> Subject: Re: [Xen-devel] [RFC/PATCH v2] XENMEM_claim_pages (subop of
> > > existing) hypercall
> > >
> > > Hi Ian --
> > >
> > >> On Thu, 2012-11-15 at 19:15 +0000, Dan Magenheimer wrote:
> > >> > > From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx]
> > >> > > Subject: Re: [Xen-devel] [RFC/PATCH v2] XENMEM_claim_pages (subop of
> > > existing) hypercall
> > >> > >
> > >> > > On Wed, 2012-11-14 at 23:55 +0000, Dan Magenheimer wrote:
> > >> > >
> > >> > > How does this interact with the feature which lets you create PV 
> > >> > > guests
> > >> > > using only superpages? I believe is something Oracle added and still
> > >> > > maintains (Dave added to the CC).
> > >> >
> > >> > The claim mechanism will not benefit PV superpages.  IIUC, the
> > >> > design of the PV superpages will cause a domain launch to fail
> > >> > if it requests 10000 superpages but Xen can only successfully
> > >> > allocate 9999.  That's already very fragile.  Since the only
> > >> > way currently to find out if there are 10000 superpages available
> > >> > is to start allocating them, claim can't really help.
> > >>
> > >> Well, you could always account the number of free superpages in the
> > >> system, which would allow you to cover this case too.
> > >
> > > Because of the nature of the buddy allocator (i.e. 4MB chunks are
> > > kept separately from 2MB chunks even though a 4MB page contains
> > > two 2MB pages), I don't think this is trivial.
> >
> > This ought to be as simple as adding respective accounting
> > when
> > - splitting a chunk in alloc_heap_pages(), crossing the super page
> >   size boundary, and
> > - merging chunks in free_heap_pages(), crossing the super page
> >   size boundary.
> 
> That was my first thought too.

Hi Ian and Jan --

I agree it's possible, just saying it's not trivial... one has to
account not only for superpages system-wide (which isn't currently
done) but a mix of unclaimed superpages and unclaimed order==0 pages
per-domain.  Especially since that would improve launch of only a small
and shrinking class of domains (PV && superpages=1 && mem="huge"),
can we please consider it a possible future enhancement, not a showstopper?
The proposed claim hypercall doesn't _break_ PV-superpage domains,
it just doesn't pre-fail domain launch when there is sufficient physical
RAM but insufficient quantity of superpages.  And the toolstack doesn't
need to special-case... always doing a claim first is worthwhile because
it still pre-fails the case where there is insufficient physical RAM.

(I'd ask Konrad or Kurt to chime in here, but I know both are
away from the office due to the holidays... and I should be too.)

Thanks,
Dan

_______________________________________________
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®.