[libvirt] [RFC] Memory controller exploitation in libvirt

Balbir Singh balbir at linux.vnet.ibm.com
Tue Aug 24 08:24:48 UTC 2010


* Nikunj A. Dadhania <nikunj at linux.vnet.ibm.com> [2010-08-24 13:35:10]:

> On Tue, 24 Aug 2010 13:05:26 +0530, Balbir Singh <balbir at linux.vnet.ibm.com> wrote:
> > * Nikunj A. Dadhania <nikunj at linux.vnet.ibm.com> [2010-08-24 11:53:27]:
> > 
> > > 
> > >  Subject: [RFC] Memory controller exploitation in libvirt
> > > 
> > >  Corresponding libvirt public API:
> > >  int virDomainSetMemoryParamters (virDomainPtr domain, 
> > >      				  virMemoryParamterPtr params, 
> > >       		                  unsigned int nparams);
> > >  int virDomainGetMemoryParamters (virDomainPtr domain, 
> > >      				  virMemoryParamterPtr params, 
> > >       		                  unsigned int nparams);
> > > 
> > > 
> > 
> > Does nparams imply setting several parameters together? Does bulk
> > loading help? I would prefer splitting out the API if possible
> > into
> Yes it helps, when parsing the parameters from the domain xml file, we can call
> this API and set them at once. BTW, it can also be called with one parameter
> if desired.
>
> > 
> >         virCgroupSetMemory() - already present in src/util/cgroup.c
> >         virCgroupGetMemory() - already present in src/util/cgroup.c
> >         virCgroupSetMemorySoftLimit()
> >         virCgroupSetMemoryHardLimit()
> >         virCgroupSetMemorySwapHardLimit()
> >         virCgroupGetStats()
> This is at the cgroup level(internal API) and will be implemented in the way
> that is suggested. The RFC should not be specific to cgroups. libvirt is
> supported on multiple OS and the above described APIs in the RFC are public
> API.
>

I thought we were talking of cgroups in the QEMU driver for Linux.
IMHO the generalization is too big. ESX for example, already abstracts
their WLM/RM needs in their driver.
 
> > >     SwapHardLimits (memory.memsw_limit_in_bytes) - Maximum swap 
> > >     SwapSoftLimits (Currently not supported by kernel) - Desired swap space 
> > > 
> > 
> > We *dont* support SwapSoftLimits in the memory cgroup controller with
> > no plans to support it in the future either at this point. The
> Ok.
> 
> > >     Tunables memory.limit_in_bytes, memory.softlimit_in_bytes and
> > >     memory.memsw_limit_in_bytes are provided by the memory controller in the
> > >     Linux kernel.
> > >     
> > >  I am not an expert here, so just listing what new elements need to be added
> > >  to the XML schema:
> > > 
> > >  <define name="resource">
> > >     <element memory>
> > >     	<element memoryHardLimit/>
> > >     	<element memorySoftLimit/>
> > >         <element memoryMinGaurantee/>
> > >         <element swapHardLimit/>
> > >         <element swapSoftLimit/>
> > >     </element>
> > >  </define>
> > > 
> > 
> > I'd prefer a syntax that integrates well with what we currently have
> > 
> >         <cgroup>
> >                 <path>...</path>
> >                 <controller>
> >                 <name>..</name>
> >                 <soft limit>...</>
> >                 <hard limit>...</>
> >                 </controller>
> >         ...
> >         </cgroup>
> 
> Again this is a libvirt domain xml file, IMO, it should not be cgroup specific.
>

See the comment above. 

-- 
	Three Cheers,
	Balbir




More information about the libvir-list mailing list