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