[libvirt] [PATCH V8 3/6] add interface virCgroupGetMemSwapUsage

Richard W.M. Jones rjones at redhat.com
Mon Nov 12 08:44:34 UTC 2012


On Mon, Nov 12, 2012 at 03:02:25PM +0800, Gao feng wrote:
> virCgroupGetMemSwapUsage is used to get container's swap usage,
> with this interface,we can get swap usage in fuse filesystem.
> 
> Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
> ---
>  src/libvirt_private.syms |    1 +
>  src/util/cgroup.c        |   20 ++++++++++++++++++++
>  src/util/cgroup.h        |    1 +
>  3 files changed, 22 insertions(+), 0 deletions(-)
> 
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index e94b478..2608072 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -98,6 +98,7 @@ virCgroupGetCpuacctUsage;
>  virCgroupGetCpusetCpus;
>  virCgroupGetCpusetMems;
>  virCgroupGetFreezerState;
> +virCgroupGetMemSwapUsage;
>  virCgroupGetMemSwapHardLimit;
>  virCgroupGetMemoryHardLimit;
>  virCgroupGetMemorySoftLimit;
> diff --git a/src/util/cgroup.c b/src/util/cgroup.c
> index 3f7b5f7..4aae70d 100644
> --- a/src/util/cgroup.c
> +++ b/src/util/cgroup.c
> @@ -1371,6 +1371,26 @@ int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb)
>  }
>  
>  /**
> + * virCgroupGetMemSwapUsage:
> + *
> + * @group: The cgroup to get mem+swap usage for
> + * @kb: The mem+swap amount in kilobytes
> + *
> + * Returns: 0 on success
> + */
> +int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb)
> +{
> +    long long unsigned int usage_in_bytes;
> +    int ret;
> +    ret = virCgroupGetValueU64(group,
> +                               VIR_CGROUP_CONTROLLER_MEMORY,
> +                               "memory.memsw.usage_in_bytes", &usage_in_bytes);
> +    if (ret == 0)
> +        *kb = usage_in_bytes >> 10;
> +    return ret;
> +}
> +
> +/**
>   * virCgroupSetCpusetMems:
>   *
>   * @group: The cgroup to set cpuset.mems for
> diff --git a/src/util/cgroup.h b/src/util/cgroup.h
> index 38fa4b7..0c11eb1 100644
> --- a/src/util/cgroup.h
> +++ b/src/util/cgroup.h
> @@ -92,6 +92,7 @@ int virCgroupSetMemorySoftLimit(virCgroupPtr group, unsigned long long kb);
>  int virCgroupGetMemorySoftLimit(virCgroupPtr group, unsigned long long *kb);
>  int virCgroupSetMemSwapHardLimit(virCgroupPtr group, unsigned long long kb);
>  int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb);
> +int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb);
>  
>  enum {
>      VIR_CGROUP_DEVICE_READ  = 1,
> -- 
> 1.7.7.6

ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/




More information about the libvir-list mailing list