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

Re: [Xen-devel] [PATCH] RFC: initial libxl support for xenpaging



On Fri, 2012-02-24 at 15:38 +0000, Olaf Hering wrote:
> On Fri, Feb 24, Ian Campbell wrote:
> 
> > Here is an updated version of my proposed interface which includes
> > sharing, I think as you described (modulo the use of mem-paging-set
> > where you said mem-set above).
> > 
> > I also included "mem-paging-set manual" as an explicit thing with an
> > error on "mem-paging-set N" if you don't switch to manual mode. This
> > might be too draconian -- I'm not wedded to it.
> > 
> > maxmem=X                        # maximum RAM the domain can ever see
> > memory=M                        # current amount of RAM seen by the
> >                             # domain
> > paging=[off|on]                 # allow the amount of memory a guest 
> >                                 # thinks it has to differ from the
> >                                 # amount actually available to it (its
> >                                 # "footprint")
> > pagingauto=[off|on] (dflt=on)   # enable automatic enforcement of 
> >                                 # "footprint" for guests which do not
> >                                 # voluntarily obey changes to memory=M 
> > pagingdelay=60                  # amount of time to give a guest to 
> >                                 # voluntarily comply before enforcing a 
> >                                 # footprint
> > pagesharing=[off|on]                # cause this guest to share pages with
> >                             # other similarly enabled guests where
> >                             # possible. Requires paging=on.
> > pageextrapolocy=...         # controls what happens to extra pages 
> >                             # gain via sharing (could be combined 
> >                             # with pagesharing option:
> >                             #       [off|policy|...])
> > 
> >         Open question -- does pagesharing=on require paging=on? I've
> >         tried to specify things below such that it does not, but it
> >         might simplify things to require this.
> > 
> > xl mem-set domain M
> >         Sets the amount of RAM which the guest believes it has available
> >         to M. The guest should arrange to use only that much RAM and
> >         return the rest to the hypervisor (e.g. by using a balloon
> >         driver). If the guest does not do so then the host may use
> >         technical means to enforce the guest's footprint of M. The guest
> >         may suffer a performance penalty for this enforcement.
> > 
> >         paging off:     set balloon target to M.
> >         paging on:      set balloon target to M.
> >                         if pagingauto:
> >                                 wait delay IFF new target < old
> >                                 set paging target to M
> >                                 support -t <delay> to override default?
> 
> Instead of having two now config options pagingauto= and pagingdelay=,
> what about 'xl mem-set -t <seconds>' to adjust the fixed internal value
> pagingdelay=? Then '-t 0' could mean pagingauto=off, which means use
> both ballooning and paging to reach the "footprint" M.

So you mean:

        paging on:      set balloon target to M.
                        if pagingdelay > 0:
                                wait delay IFF new target < old
                        else:
                                pagingauto=off
                        set paging target to M

or

        paging on:      set balloon target to M.
                        if pagingdelay > 0:
                                wait delay IFF new target < old
                                set paging target to M
                        else:
                                pagingauto=off

? (the difference being whether or not we set the paging at all if delay
== 0). 

I don't think I like overloading "-t 0" to also turn off auto mode like
that. It makes it less explicit when you are disabling auto mode and
entering "you have to know what you are doing" territory.

With my original proposal you can do
        xl mem-set -t 0 D N
and that will do both paging and ballooning enabled but will stay in
auto mode, if that's what you want.

If you really want to also turn off auto mode then with my N-1th
proposal you would do:
        xl mem-set -t 0 D N && xl mem-paging-set D N
but that is more explicit about turning off auto mode. In my most recent
proposal you'd have to do :
        xl mem-set -t 0 D N && xl mem-paging-set D manual && xl mem-paging-set 
D N
which is a little _too_ explicit perhaps. I suspect the previous
proposal was preferable in this regard?

> 
> >         Open question -- if a domain balloons to M as requested should
> >         it still be subject to sharing? There is a performance hit
> >         associated with sharing (far less than paging though?) but
> >         presumably the admin would not have enabled sharing if they
> >         didn't want this, therefore I think it is right for sharing on
> >         to allow the guest to actually have <M assigned to it. Might be
> >         a function of the individual sharing policy?
> > 
> > xl mem-paging-set domain manual
> >     Enables manual control of paging target.
> > 
> >     paging off:     error
> >     paging on:      set pagingauto=off
> >     sharing on:     same as paging on.
> > 
> > xl mem-paging-set domain N
> >         Overrides the amount of RAM which the guest actually has
> >         available (its "footprint") to N. The host will use technical
> >         means to continue to provide the illusion to the guest that it
> >         has memory=M (as adjusted by mem-set). There may be a
> >         performance penalty for this.
> >         
> >         paging off:     error
> 
> Could this be the time to start the pager and give it target N?

Here and at the appropriate time when auto=true.

Ian.


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