On 01/15/2014 07:23 AM, Thorsten Behrens wrote: > --- > src/lxc/lxc_driver.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c > index 7e56a59..9f586af 100644 > --- a/src/lxc/lxc_driver.c > +++ b/src/lxc/lxc_driver.c > @@ -4554,6 +4554,57 @@ lxcNodeGetInfo(virConnectPtr conn, > > > static int > +lxcDomainMemoryStats(virDomainPtr dom, > + struct _virDomainMemoryStat *stats, > + unsigned int nr_stats, > + unsigned int flags) > +{ > + virDomainObjPtr vm; > + int ret = -1; > + virLXCDomainObjPrivatePtr priv; > + int got = 0; > + > + virCheckFlags(0, -1); > + > + if (!(vm = lxcDomObjFromDomain(dom))) > + goto cleanup; > + > + priv = vm->privateData; > + > + if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0) > + goto cleanup; > + You should make sure domain is running and the return value of lxcDomainMemoryStats seem incorrect. > + if (got < nr_stats) { > + stats[got].tag = VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON; > + stats[got].val = vm->def->mem.cur_balloon; > + got++; > + } > + if (got < nr_stats) { > + stats[got].tag = VIR_DOMAIN_MEMORY_STAT_SWAP_IN; > + virCgroupGetMemSwapUsage(priv->cgroup, &stats[got].val); > + got++; > + } > + if (got < nr_stats) { > + unsigned long kb; > + stats[got].tag = VIR_DOMAIN_MEMORY_STAT_RSS; > + virCgroupGetMemoryUsage(priv->cgroup, &kb); > + stats[got].val = kb; > + ret++; > + } > + > +cleanup: > + if (vm) > + virObjectUnlock(vm); > + return ret; > +} > + > + > +static int > lxcNodeGetCPUStats(virConnectPtr conn, > int cpuNum, > virNodeCPUStatsPtr params, > @@ -4781,6 +4832,7 @@ static virDriver lxcDriver = { > .domainSetSchedulerParameters = lxcDomainSetSchedulerParameters, /* 0.5.0 */ > .domainSetSchedulerParametersFlags = lxcDomainSetSchedulerParametersFlags, /* 0.9.2 */ > .domainInterfaceStats = lxcDomainInterfaceStats, /* 0.7.3 */ > + .domainMemoryStats = lxcDomainMemoryStats, /* 0.7.5 */ 0.7.5 is incorrect, it should be 1.2.1. > .nodeGetCPUStats = lxcNodeGetCPUStats, /* 0.9.3 */ > .nodeGetMemoryStats = lxcNodeGetMemoryStats, /* 0.9.3 */ > .nodeGetCellsFreeMemory = lxcNodeGetCellsFreeMemory, /* 0.6.5 */ > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list