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

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



On Fri, Feb 24, Ian Campbell wrote:

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

I misunderstood what pagingauto= is supposed to do.

So 'xl mem-set -t <sec> D N' could be:
        set balloon target to N
        if paging && pagingauto:
                if pagingdelay > 0:
                        wait pagingdelay
                set paging target to N

And -t 0 would just set the paging target right away so that the
footprint is reached fast, at the expense of concurent
ballooning+paging.

Is an extra pagingdelay= .cfg option is really helpful if the -t option
exists? I think it would be part of libxl then, and other libxl users
like libvirt may need to implement a knob similar to -t <sec> in their
mem-set implementation? Or should the actual waiting of <sec> be done in
libxl itself? Perhaps the pagingdelay= could be some sort of
recommendation for those who implement the "mem-set" function.
I'm just wondering where the actual waiting should be done, its not yet
part of the proposal. I think the actual memory change is an asynchron
event, so the xl monitoring process could do the actual work and the
mem-set command is just the trigger. Other libxl users would need their
own monitoring.

> 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?

About the 'xl mem-paging-set D manual' part I'm not sure yet.

Should 'xl mem-paging-set D N && xl mem-set D M' undo the paging target
from mem-paging-set? If yes, the manual mode is not needed. If no, then
a manual/auto mode is needed.

Olaf

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