|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |