From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554752372367724.0808528151374; Mon, 8 Apr 2019 12:39:32 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 894E230832EF; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5EED55D721; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1B39F181AC47; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38JdAsj006456 for ; Mon, 8 Apr 2019 15:39:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id 20F7319C5A; Mon, 8 Apr 2019 19:39:10 +0000 (UTC) Received: from mx1.redhat.com (ext-mx20.extmail.prod.ext.phx2.redhat.com [10.5.110.49]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 19F9B19C57 for ; Mon, 8 Apr 2019 19:39:07 +0000 (UTC) Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A134930BA340 for ; Mon, 8 Apr 2019 19:39:06 +0000 (UTC) Received: by mail-qt1-f194.google.com with SMTP id v20so16882746qtv.12 for ; Mon, 08 Apr 2019 12:39:06 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WW3BPuVGm4r+Ukfh7c8jJHH/YrHVqkRrwWEtDhjksjc=; b=faPBc8VoHfCLJX4CUqYJ5zmti1AqoCY6qE++OnwymtUC+yHrzJFF8XAvevKjzoR7Om Xxge1bUr4HAIKNUs3idvdxatQySWyzQKpCwHfy/iqWSkkQcVs203aa2o9noHCVNsm63i utT0/USn34NVA1ZxxA3taG6uqUCiOXmNUVMZQTfeN60dj51y+lAekfYIN3wzkVClnR+p IUw+jllAFxw433aXWEFXG6d7DAbxaUdwf5RVUCb7gml+RwkMen1wGWzF9UIS0SyQMvWE iMzP0Dmn4iido+y2J3/Low22ZFjpAotzeWplZM/+/p/c/czlvCRhUYRjdVQHrfucjxeC J8Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WW3BPuVGm4r+Ukfh7c8jJHH/YrHVqkRrwWEtDhjksjc=; b=EEi7qO71RWHwOttdEdJykCJFNg5jcNNyCX86Evf1Z8LfQgNmsm8VBK3u83H1q0BhHy zYdWyEiVs7f+8eBmv16WxH1SynQJLIl10kfI8zRReYTjxIerdKMo12baRN+yRA14V61C NTtJb+2MUosC4dXQyf5ayft4Mm0ynq+LMa9AHOrhK4tqwisbrWFOCdUe4mQLEutZP7Ja 4ANKXD1kGrK9DPm24iNrGYjVcrSXCrWIN1lv28OFdvvIl01xkm86XkBDGY7wQK8wY42a CzpwfTYzBCL46Ux8PrAAHwJtQ2Vs0z3L/SsHYdZICLsNRorCod0vU+/BUCXw6SYllm1M plPQ== X-Gm-Message-State: APjAAAVqgZ0vY9lprPwY88CzXTiUl7gHJlkunUpyYKFNEasK6iF8NlJI jAQMYf2Wd5wmJqcBJIlK+Q/7o7Xp X-Google-Smtp-Source: APXvYqzI4I6flKLNCspAKV25zLBhD70qJKKq3G0tc9OTu6L+H1u88hBdB7SE9wQALHShAtj80m7kfQ== X-Received: by 2002:ac8:f24:: with SMTP id e33mr27037956qtk.256.1554752345684; Mon, 08 Apr 2019 12:39:05 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:54 -0300 Message-Id: <20190408193859.19180-2-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 08 Apr 2019 19:39:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 08 Apr 2019 19:39:06 +0000 (UTC) for IP:'209.85.160.194' DOMAIN:'mail-qt1-f194.google.com' HELO:'mail-qt1-f194.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.160.194 mail-qt1-f194.google.com 209.85.160.194 mail-qt1-f194.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.49 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 1/6] lxc: Introduce method lxcConnectGetAllDomainStats X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 08 Apr 2019 19:39:30 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This is an implementation of method used by driver to retrieve stats from all domain. Right now, this is a simple implementation considering only State, CPU, Disks and Balloon. Signed-off-by: Julio Faracco --- src/lxc/lxc_driver.c | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index e981f8e901..8c545fc602 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -5271,6 +5271,71 @@ lxcDomainGetMetadata(virDomainPtr dom, } =20 =20 +static int +lxcConnectGetAllDomainStats(virConnectPtr conn, + virDomainPtr *doms, + unsigned int ndoms, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags) +{ + virLXCDriverPtr driver =3D conn->privateData; + virDomainObjPtr *vms =3D NULL; + size_t nvms; + virDomainStatsRecordPtr *tmpstats =3D NULL; + int nstats =3D 0; + int ret =3D -1; + unsigned int lflags =3D flags & (VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTI= VE | + VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSIS= TENT | + VIR_CONNECT_LIST_DOMAINS_FILTERS_STATE); + unsigned int supported =3D VIR_DOMAIN_STATS_STATE | + VIR_DOMAIN_STATS_CPU_TOTAL | + VIR_DOMAIN_STATS_BLOCK | + VIR_DOMAIN_STATS_BALLOON; + + virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTIVE | + VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSISTENT | + VIR_CONNECT_LIST_DOMAINS_FILTERS_STATE | + VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS, -1); + + if (virConnectGetAllDomainStatsEnsureACL(conn) < 0) + return -1; + + if (!stats) { + stats =3D supported; + } else if ((flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS) && + (stats & ~supported)) { + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, + _("Stats types bits 0x%x are not supported by this = daemon"), + stats & ~supported); + return -1; + } + + if (ndoms) { + if (virDomainObjListConvert(driver->domains, conn, doms, ndoms, &v= ms, + &nvms, virConnectGetAllDomainStatsChec= kACL, + lflags, true) < 0) + return -1; + } else { + if (virDomainObjListCollect(driver->domains, conn, &vms, &nvms, + virConnectGetAllDomainStatsCheckACL, + lflags) < 0) + return -1; + } + + if (VIR_ALLOC_N(tmpstats, ndoms + 1) < 0) + goto cleanup; + + VIR_STEAL_PTR(*retStats, tmpstats); + ret =3D nstats; + + cleanup: + virDomainStatsRecordListFree(tmpstats); + virObjectListFreeCount(vms, nvms); + + return ret; +} + static int lxcDomainGetCPUStats(virDomainPtr dom, virTypedParameterPtr params, @@ -5441,6 +5506,7 @@ static virHypervisorDriver lxcHypervisorDriver =3D { .domainMemoryStats =3D lxcDomainMemoryStats, /* 1.2.2 */ .nodeGetCPUStats =3D lxcNodeGetCPUStats, /* 0.9.3 */ .nodeGetMemoryStats =3D lxcNodeGetMemoryStats, /* 0.9.3 */ + .connectGetAllDomainStats =3D lxcConnectGetAllDomainStats, /* 5.2.0 */ .nodeGetCellsFreeMemory =3D lxcNodeGetCellsFreeMemory, /* 0.6.5 */ .nodeGetFreeMemory =3D lxcNodeGetFreeMemory, /* 0.6.5 */ .nodeGetCPUMap =3D lxcNodeGetCPUMap, /* 1.0.0 */ --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554752511040309.2477017221221; Mon, 8 Apr 2019 12:41:51 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E8FB13086228; Mon, 8 Apr 2019 19:41:48 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C13DF5D71F; Mon, 8 Apr 2019 19:41:48 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 75DBD181AC44; Mon, 8 Apr 2019 19:41:48 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38Jd9YN006447 for ; Mon, 8 Apr 2019 15:39:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id E1F0C60FDB; Mon, 8 Apr 2019 19:39:09 +0000 (UTC) Received: from mx1.redhat.com (ext-mx17.extmail.prod.ext.phx2.redhat.com [10.5.110.46]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DCAC960F89 for ; Mon, 8 Apr 2019 19:39:09 +0000 (UTC) Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 190F83082E63 for ; Mon, 8 Apr 2019 19:39:08 +0000 (UTC) Received: by mail-qt1-f194.google.com with SMTP id z17so16876567qts.13 for ; Mon, 08 Apr 2019 12:39:08 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QYgWhjjF7sanwgNecY7fUEShQPM2miRKzekNLWITj8k=; b=DO0V/yAGl1sBIPoD/bDMYy8eyuWsrGVMqer16lEjmj5tUhI57dTs/aWc1c9yCAXsjQ OUWGhhB+LCuCMGUo/woucilaBe4SYvC2o999XNQXwddPiA0qK1W36Kz40V/HyjcIaX8N OmaY0M0g9QfUfOHFQonWNwNj3pfoGXH9mWV/uIqlpfZXzW8wq0VOniRiSP8BCRi+g4QP OH3tXPTcFzXybcLRypPx+I8G5MdIHugCF5PkXgq/1vn+K6ogT7SKtHdKv6xZSykGnmv/ tHIeaQFzoj68pWKlE2NdWfC2nAaabNqRnS3J4W6ZD4bEjCkZVPFPhebT+Ix7PjfQfzyQ UDcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QYgWhjjF7sanwgNecY7fUEShQPM2miRKzekNLWITj8k=; b=kNNxEK00+qMckvst57eUAcfuw/2jJIAY8epmffVr9fYIVyZx21qMLdeBpuN7tDAovE ozrVmYm9Db+Ybzu1Uw0HrvpAuE2Bi4tNbregjglJ37ajlJg9NmeiAyp3/J2yzTmONpin uHZT28dyBdnuTrPkNhcZwlanqowROiD8Uw8tgjDDLvajtD20CH3mYNVwvPj8SOmxYW1P La3rn+i/Rmj0j0aNnYHAEs91Ne9MBNsvsbxvBIu1szSO+ppGVhF6vNs9kXjiHRn7u9dB JYI/ELvSBU4yOz2Z0rn5uXyYkM3DkCKXda29HmRoabwvc6HN1LuwggbHiFzilcuzFzMc md0g== X-Gm-Message-State: APjAAAVJn78eZ2GhqJ4NuUP677zd7sRRee9YzTbA6WBSOY5IK37bOtso C21MiiN7TyX42E594JkvHRD8v6cZ X-Google-Smtp-Source: APXvYqxHztyNEDvTRuMY9j0K00kWW1BO66L1WIolY+IjAokUWt2GhWYaIWQ0kAgOZkHjnRu8SXk5eQ== X-Received: by 2002:a0c:b096:: with SMTP id o22mr11930162qvc.170.1554752347126; Mon, 08 Apr 2019 12:39:07 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:55 -0300 Message-Id: <20190408193859.19180-3-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 08 Apr 2019 19:39:08 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 08 Apr 2019 19:39:08 +0000 (UTC) for IP:'209.85.160.194' DOMAIN:'mail-qt1-f194.google.com' HELO:'mail-qt1-f194.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.160.194 mail-qt1-f194.google.com 209.85.160.194 mail-qt1-f194.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.46 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 2/6] lxc: Introduce method lxcDomainGetStats X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Mon, 08 Apr 2019 19:41:49 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This method is responsible to fetch data like State, CPU, Disk and Balloon info (all single domain info) from each domain 'virDomainObjPtr'. There is an implementation of method lxcDomainGetStatsState() to give a small functionality to lxcDomainGetStats(). Signed-off-by: Julio Faracco --- src/lxc/lxc_driver.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 8c545fc602..be26cf18a4 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -5271,6 +5271,69 @@ lxcDomainGetMetadata(virDomainPtr dom, } =20 =20 +static int +lxcDomainGetStatsState(virDomainObjPtr dom, + virDomainStatsRecordPtr record, + int *maxparams, + unsigned int supported) +{ + unsigned int flags =3D VIR_DOMAIN_STATS_STATE; + + virCheckFlags(supported, 0); + + if (virTypedParamsAddInt(&record->params, + &record->nparams, + maxparams, + "state.state", + dom->state.state) < 0) + return -1; + + if (virTypedParamsAddInt(&record->params, + &record->nparams, + maxparams, + "state.reason", + dom->state.reason) < 0) + return -1; + + return 0; +} + + +static virDomainStatsRecordPtr +lxcDomainGetStats(virConnectPtr conn, + virDomainObjPtr dom, + unsigned int flags) +{ + virLXCDriverPtr driver =3D conn->privateData; + virDomainStatsRecordPtr stat; + int maxparams =3D 0; + + if (VIR_ALLOC(stat) < 0) + return NULL; + + if (!(stat->dom =3D virGetDomain(conn, dom->def->name, dom->def->uuid,= dom->def->id))) + goto error; + + if (virLXCDomainObjBeginJob(driver, dom, LXC_JOB_QUERY) < 0) + goto error; + + if (lxcDomainGetStatsState(dom, stat, &maxparams, flags) < 0) + goto endjob; + + virLXCDomainObjEndJob(driver, dom); + return stat; + + endjob: + virLXCDomainObjEndJob(driver, dom); + + error: + virTypedParamsFree(stat->params, stat->nparams); + virObjectUnref(stat->dom); + VIR_FREE(stat); + return NULL; +} + + static int lxcConnectGetAllDomainStats(virConnectPtr conn, virDomainPtr *doms, @@ -5281,7 +5344,9 @@ lxcConnectGetAllDomainStats(virConnectPtr conn, { virLXCDriverPtr driver =3D conn->privateData; virDomainObjPtr *vms =3D NULL; + virDomainObjPtr vm; size_t nvms; + size_t i; virDomainStatsRecordPtr *tmpstats =3D NULL; int nstats =3D 0; int ret =3D -1; @@ -5326,6 +5391,21 @@ lxcConnectGetAllDomainStats(virConnectPtr conn, if (VIR_ALLOC_N(tmpstats, ndoms + 1) < 0) goto cleanup; =20 + for (i =3D 0; i < nvms; i++) { + virDomainStatsRecordPtr tmp; + vm =3D vms[i]; + + virObjectLock(vm); + tmp =3D lxcDomainGetStats(conn, vm, stats); + virObjectUnlock(vm); + + if (!tmp) + goto cleanup; + + tmpstats[nstats++] =3D tmp; + + } + VIR_STEAL_PTR(*retStats, tmpstats); ret =3D nstats; =20 --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554752516217939.0010182141723; Mon, 8 Apr 2019 12:41:56 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F15BD3E2CF; Mon, 8 Apr 2019 19:41:53 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C96FC5DA2A; Mon, 8 Apr 2019 19:41:53 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8F76E181AC46; Mon, 8 Apr 2019 19:41:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38JdCtq006476 for ; Mon, 8 Apr 2019 15:39:13 -0400 Received: by smtp.corp.redhat.com (Postfix) id EBD055D9C9; Mon, 8 Apr 2019 19:39:12 +0000 (UTC) Received: from mx1.redhat.com (ext-mx02.extmail.prod.ext.phx2.redhat.com [10.5.110.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E49D75DA2A for ; Mon, 8 Apr 2019 19:39:10 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 743F286674 for ; Mon, 8 Apr 2019 19:39:09 +0000 (UTC) Received: by mail-qt1-f193.google.com with SMTP id z16so16975173qtn.4 for ; Mon, 08 Apr 2019 12:39:09 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=tlfziLYcAr0PNZv5fpSdzfKZGN6UClS2TTVPyyvst/k=; b=WByK8xrLjk59j+QXJoHi/x0pyQe8VgQJn1CjsrxP8r54x7/elG5agjJf4z284Zchs0 gBioKniIxgL8mvA+SBhXzRAgdorYIsPgSNSN9XwtlkILk8PT7V5mPPq5mDCYS/Z0DFqa pGIvtt0VjPqqXEm/54pZnVKUKjqAGtUahSHylOZzytp9zioC7gCn+qKDteOMy277DBdG +UU5wySwn515UeTJovuqTbFtJHq1ci89UeNcanuRNYR96vfw4MDiTFdAiyx/kpjgchkZ aq2ak57q/WQPk/TnyiNbZlXWLfD6sOmaRz3prdc/5CUATxJ0iKNNhvbc29RmexfYzdMH zyEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tlfziLYcAr0PNZv5fpSdzfKZGN6UClS2TTVPyyvst/k=; b=dg7MTjye7cmHLSx5OJIKjYvG765y0bZ4f92K+q1ILobjpuRRwNvsPKK+IPOsPlOkt8 XhkjylCNpoOB70qdMHL5myUsZ7AnR4Jle9w0BjWQmJBHi3Xaq4GUO1P3oOfRpdcvQbbK SpyRKzWUfeRwCg8xKJux66tpcOoH12TnEurDiBBAWh+//aJwyc2i/Kjk9IV8RWa5KMSt Y1yj0KR1vlhLBFfRMLmtoF/S7BA3U9Alpn+CXvpLmVQGHC5wo4Aqm1G/5K77GClZRiYu 5WpeNOtzFVpqU95maS/5qWiyILDnIvvUinM1GT6PM+Ebzr/3AyYmmLfEgI3I1tm9I27y 8PPQ== X-Gm-Message-State: APjAAAWcPQ3dmo3MEGbzMv8Rbj4wQbnvXR5QsyWH61XBBt27yeRLLwBB GtrtJr3GR1Wdo5AGxERro4G5idaY X-Google-Smtp-Source: APXvYqye8f8YEzEsCvlEXxOhphCgx/fwgw7/vthnOZKW0tYCik19lIRVj5c/6GlvguroyLA1xPdwHA== X-Received: by 2002:ac8:1c2c:: with SMTP id a41mr26848180qtk.292.1554752348516; Mon, 08 Apr 2019 12:39:08 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:56 -0300 Message-Id: <20190408193859.19180-4-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 08 Apr 2019 19:39:09 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 08 Apr 2019 19:39:09 +0000 (UTC) for IP:'209.85.160.193' DOMAIN:'mail-qt1-f193.google.com' HELO:'mail-qt1-f193.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.160.193 mail-qt1-f193.google.com 209.85.160.193 mail-qt1-f193.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.26 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 3/6] lxc: Introduce method lxcDomainGetStatsCpu X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 08 Apr 2019 19:41:54 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This method is responsible to fetch all CPU Cgroup Stats and store data into virDomainStatsRecordPtr structure. Signed-off-by: Julio Faracco --- src/lxc/lxc_driver.c | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index be26cf18a4..0e6d5743d0 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -5299,6 +5299,53 @@ lxcDomainGetStatsState(virDomainObjPtr dom, } =20 =20 +static int +lxcDomainGetStatsCpu(virDomainObjPtr dom, + virDomainStatsRecordPtr record, + int *maxparams, + unsigned int supported) +{ + virLXCDomainObjPrivatePtr priv =3D dom->privateData; + unsigned long long cpu_time =3D 0; + unsigned long long user_time =3D 0; + unsigned long long sys_time =3D 0; + unsigned int flags =3D VIR_DOMAIN_STATS_CPU_TOTAL; + int err =3D 0; + + virCheckFlags(supported, 0); + + if (virDomainObjCheckActive(dom) < 0) + return 0; + + if (!priv->cgroup) + return 0; + + err =3D virCgroupGetCpuacctUsage(priv->cgroup, &cpu_time); + if (!err && virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "cpu.time", + cpu_time) < 0) + return -1; + + err =3D virCgroupGetCpuacctStat(priv->cgroup, &user_time, &sys_time); + if (!err && virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "cpu.user", + user_time) < 0) + return -1; + if (!err && virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "cpu.system", + sys_time) < 0) + return -1; + + return 0; +} + + static virDomainStatsRecordPtr lxcDomainGetStats(virConnectPtr conn, virDomainObjPtr dom, @@ -5320,6 +5367,9 @@ lxcDomainGetStats(virConnectPtr conn, if (lxcDomainGetStatsState(dom, stat, &maxparams, flags) < 0) goto endjob; =20 + if (lxcDomainGetStatsCpu(dom, stat, &maxparams, flags) < 0) + goto endjob; + virLXCDomainObjEndJob(driver, dom); return stat; =20 --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 15547523759951005.6723541565747; Mon, 8 Apr 2019 12:39:35 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2E69830FD827; Mon, 8 Apr 2019 19:39:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03AC845CA; Mon, 8 Apr 2019 19:39:33 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C356841F3C; Mon, 8 Apr 2019 19:39:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38JdDBu006481 for ; Mon, 8 Apr 2019 15:39:13 -0400 Received: by smtp.corp.redhat.com (Postfix) id E5C9B106A030; Mon, 8 Apr 2019 19:39:13 +0000 (UTC) Received: from mx1.redhat.com (ext-mx16.extmail.prod.ext.phx2.redhat.com [10.5.110.45]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E015C1064251 for ; Mon, 8 Apr 2019 19:39:11 +0000 (UTC) Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D7A603082A27 for ; Mon, 8 Apr 2019 19:39:10 +0000 (UTC) Received: by mail-qk1-f194.google.com with SMTP id a71so8775364qkg.2 for ; Mon, 08 Apr 2019 12:39:10 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=N6X7vOdkIlftFZYwhynkAmozB33HIhn42USRNyLYrsY=; b=mmVdqnmVVzvFgUzK6t9qppBtdxUkHi2aDC5x4zEGZDPZhP4+GizRv9NcBIWqe0GuFa T311+Ji/dUD1GjI7E/tFD6alcUsLbrjlhfFkrzdNla5wNVN2Ky7LNIJ5VnBPMJAlP3mF V80qoT4xU4kOzpjbqaD/hRVmgB1znPasXrAZYTzqOffIY2WgsMbTpt/t5Dtkr3d+Beod o6eWwM6PhAPncUZgrroON1uY5J5/EHqwjB2VMWgbI0G9j28SwUIzh9bN+ZjnOFKlP+i7 hycbv5FRuvOx1L8RH1dpFKTzHEsPR42IO7xXQOLeObikUxPAahVQ5cRIsFhLUDUQEsc+ MFmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=N6X7vOdkIlftFZYwhynkAmozB33HIhn42USRNyLYrsY=; b=fEfxM35rkDubsverQ+k9pMau5++IcjlnQo4ZNBaN+4fe+LsuUi5v4vOTe7zG+US9oE DHtl/AJKpNN6w46lxWAygZtHnXE7E7NKSuoZ2IfvMZHuUQsI0Bn0hBDAUMzMk43hUQxb n1wpRJqxYA0vPkdNgLUCxuiJIMSGlfTioQS+CNmlt0qqrVP60ceWkKtGKyb/rOIazZzY w/K9X+6xw/UkTiGp7ss/lV5xn3vcrXyZo9jIUK0NBRLZITZ29GKvSJOfYM9PgDxgPt7F 9T9kf2N4KT6ioaomyuk8Humh9AUz2L22z1yICT/5HJV5MyfeEKdPb9nL7mYvt6ePuQaA fyCg== X-Gm-Message-State: APjAAAUgAkk53v6oDRdfWj0/KM2BdYpcFML7kP8ri+4c/iOYIkKXIAbw WmL4OLW/jcvpoOy1RZi2QWIDS4Pn X-Google-Smtp-Source: APXvYqxgPgSoWSSAUZeJApcRz22PdNVMdBn6j4mZnNC305j+rbYxbOa2RWAKeTUI8RvX4DVcGxsqPw== X-Received: by 2002:a37:6111:: with SMTP id v17mr23886558qkb.23.1554752349885; Mon, 08 Apr 2019 12:39:09 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:57 -0300 Message-Id: <20190408193859.19180-5-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Mon, 08 Apr 2019 19:39:11 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Mon, 08 Apr 2019 19:39:11 +0000 (UTC) for IP:'209.85.222.194' DOMAIN:'mail-qk1-f194.google.com' HELO:'mail-qk1-f194.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.369 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_PASS) 209.85.222.194 mail-qk1-f194.google.com 209.85.222.194 mail-qk1-f194.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.45 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 4/6] lxc: Introduce method lxcDomainGetStatsBlock X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 08 Apr 2019 19:39:34 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This method is responsible to fetch all Block Cgroup Stats and store data into virDomainStatsRecordPtr structure. This particular method check three other information like capacity, allocation and physical space. Signed-off-by: Julio Faracco --- src/lxc/lxc_driver.c | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 0e6d5743d0..a83837077d 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -2476,6 +2476,133 @@ lxcDomainBlockStatsFlags(virDomainPtr dom, } =20 =20 +static int +lxcDomainGetStatsBlock(virDomainObjPtr dom, + virDomainStatsRecordPtr record, + int *maxparams, + unsigned int supported) +{ + virLXCDomainObjPrivatePtr priv =3D dom->privateData; + virDomainBlockStatsStruct stats; + size_t i =3D 0, index =3D 0; + char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; + unsigned int flags =3D VIR_DOMAIN_STATS_BLOCK; + + virCheckFlags(supported, 0); + + if (virDomainObjCheckActive(dom) < 0) + return 0; + + if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_BLKIO)= ) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("blkio cgroup isn't mounted")); + return -1; + } + +#define LXC_ADD_STAT_PARAM_UUL(group, field, subparam) \ +do { \ + if (stats.field !=3D -1) { \ + snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, \ + group ".%zu." subparam, index); \ + if (virTypedParamsAddULLong(&record->params, \ + &record->nparams, \ + maxparams, \ + param_name, \ + stats.field) < 0) \ + return -1; \ + } \ +} while (0) + + if (virCgroupGetBlkioIoServiced(priv->cgroup, + &stats.rd_bytes, + &stats.wr_bytes, + &stats.rd_req, + &stats.wr_req) < 0) + return -1; + + LXC_ADD_STAT_PARAM_UUL("block", rd_req, "rd.reqs"); + LXC_ADD_STAT_PARAM_UUL("block", rd_bytes, "rd.bytes"); + LXC_ADD_STAT_PARAM_UUL("block", wr_req, "wr.reqs"); + LXC_ADD_STAT_PARAM_UUL("block", wr_bytes, "wr.bytes"); + + index++; + + for (i =3D 0; i < dom->def->ndisks; i++) { + virDomainDiskDefPtr disk =3D dom->def->disks[i]; + + if (*disk->src->path) { + if (!disk->info.alias) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("missing disk device alias name for %s"),= disk->dst); + return -1; + } + + if (virCgroupGetBlkioIoDeviceServiced(priv->cgroup, + disk->info.alias, + &stats.rd_bytes, + &stats.wr_bytes, + &stats.rd_req, + &stats.wr_req) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + "%s", _("domain stats query failed")); + return -1; + } + } + + LXC_ADD_STAT_PARAM_UUL("block", rd_req, "rd.reqs"); + LXC_ADD_STAT_PARAM_UUL("block", rd_bytes, "rd.bytes"); + LXC_ADD_STAT_PARAM_UUL("block", wr_req, "wr.reqs"); + LXC_ADD_STAT_PARAM_UUL("block", wr_bytes, "wr.bytes"); + + if (disk->src->allocation) { + snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, + "block.%zu.allocation", index); + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + param_name, + disk->src->allocation) < 0) + return -1; + } + + if (disk->src->physical) { + snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, + "block.%zu.physical", index); + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + param_name, + disk->src->physical) < 0) + return -1; + } + + if (disk->src->capacity) { + snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, + "block.%zu.capacity", i); + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + param_name, + disk->src->capacity) < 0) + return -1; + } + + index++; + } + +#undef LXC_ADD_STAT_PARAM_UUL + + if (virTypedParamsAddUInt(&record->params, + &record->nparams, + maxparams, + "block.count", + index) < 0) + return -1; + + return 0; +} + + static int lxcDomainSetBlkioParameters(virDomainPtr dom, virTypedParameterPtr params, @@ -5370,6 +5497,9 @@ lxcDomainGetStats(virConnectPtr conn, if (lxcDomainGetStatsCpu(dom, stat, &maxparams, flags) < 0) goto endjob; =20 + if (lxcDomainGetStatsBlock(dom, stat, &maxparams, flags) < 0) + goto endjob; + virLXCDomainObjEndJob(driver, dom); return stat; =20 --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554752370705724.624219399812; Mon, 8 Apr 2019 12:39:30 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9D9283688E; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F8BFD1CD; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 04F4E181AC46; Mon, 8 Apr 2019 19:39:28 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38JdGFS006503 for ; Mon, 8 Apr 2019 15:39:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0D07910840EC; Mon, 8 Apr 2019 19:39:16 +0000 (UTC) Received: from mx1.redhat.com (ext-mx13.extmail.prod.ext.phx2.redhat.com [10.5.110.42]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 067E01064251 for ; Mon, 8 Apr 2019 19:39:13 +0000 (UTC) Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4C13C3082135 for ; Mon, 8 Apr 2019 19:39:12 +0000 (UTC) Received: by mail-qt1-f194.google.com with SMTP id k14so16986245qtb.0 for ; Mon, 08 Apr 2019 12:39:12 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=sOigKAQy8AfnMTEq4moqG8FAckp6XArKmZhuHGaDLQQ=; b=sub7PufycKBgZH4T1GU7TPYwWPTyEvDfjLpE6WuSFecy0vf5BfFvy/uVxm3fBk8Uqd BZ8MCuAJiu3MKEq8rzbHRp2lk+f1/MNWJ9x4FhPUVNGuHH23i3HgPuPM0snccWxjRtqk lIIbq8L5neNRS2sbCFEuChHyrdmd3bryAD8g961pwfSQboppnPKqcdq9Z0HvbeiODXVZ HxhhkZP/Asj39bTXjP3YWxfUgmDDZrCF/ChK6mEJwhWJfaqWPcIhdqh8fxR+G1N7QMaJ wWR8uR8yQfsD1vv5VNZkrG8yRFKCkHO3Ip4l4w5zjtYwYsXRBGIhzI+B+MU5R6i/QKs3 aw7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sOigKAQy8AfnMTEq4moqG8FAckp6XArKmZhuHGaDLQQ=; b=s0w8qEaNxZyDPC5/M/EWzJIUa0TggVunIZnG4FtM6fWS0VB2lLClcR6QKHidIgCHH6 jT9viQNrQeprnWyC+t2UxnxW68Yj2r2kfkLRlYSIuGJccuh6KmK8QjLAW1clCGzPBUme fU1uTzOAYn+T/6ppnTS9PdCoZTBv7wFQ9Vgs/0NFCaG+rxmN/Q7j8/RzPdfcH4WEbK1v rceEHegEvDsPl4FDnxrOoklPs1z+AR2+4D364HFeJaFOUWEATX//5zagabouQxuIJhZz f2zT4ahJngD1il+JW5O1mRjO91t1j7CO6q8YlNK/2kYxVPw0mkPQd42IlCGR18cwMgUf MNeg== X-Gm-Message-State: APjAAAVwFjqVXWFRhg5cvkgY3Zp1hjCqc5DNIxxkpniToOk3+YoOQne/ ZSFE1f1vTp5KxIcduv7oxyiu8oc7 X-Google-Smtp-Source: APXvYqyJtN8s/E8DIKpI7ZKCsmEDCUbTpyWeP4z57PShalv566QW7I6ltJ7U6yu/+ooHsqw5PQltJg== X-Received: by 2002:a0c:bd89:: with SMTP id n9mr25452797qvg.200.1554752351298; Mon, 08 Apr 2019 12:39:11 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:58 -0300 Message-Id: <20190408193859.19180-6-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Mon, 08 Apr 2019 19:39:12 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Mon, 08 Apr 2019 19:39:12 +0000 (UTC) for IP:'209.85.160.194' DOMAIN:'mail-qt1-f194.google.com' HELO:'mail-qt1-f194.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.160.194 mail-qt1-f194.google.com 209.85.160.194 mail-qt1-f194.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.42 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 5/6] cgroup: Get kernel memory entry from CGroup V1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 08 Apr 2019 19:39:29 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This commit implements two methods to get kernel memory using CGroup V1. One of them get the Hard Limit of kernel memory and the other one get the current kernel memory usage from that current container. For V2, it will return error because it is not defined. Signed-off-by: Julio Faracco --- src/libvirt_private.syms | 2 ++ src/util/vircgroup.c | 32 ++++++++++++++++++++++++++++++++ src/util/vircgroup.h | 2 ++ src/util/vircgroupbackend.h | 10 ++++++++++ src/util/vircgroupv1.c | 36 ++++++++++++++++++++++++++++++++++++ 5 files changed, 82 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 212adf53c1..0c2328de0e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1584,6 +1584,8 @@ virCgroupGetMemoryStat; virCgroupGetMemoryUsage; virCgroupGetMemSwapHardLimit; virCgroupGetMemSwapUsage; +virCgroupGetKMemHardLimit; +virCgroupGetKMemUsage; virCgroupGetPercpuStats; virCgroupHasController; virCgroupHasEmptyTasks; diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index 34c970f292..2712ae32e6 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -1784,6 +1784,38 @@ virCgroupGetMemSwapUsage(virCgroupPtr group, unsigne= d long long *kb) } =20 =20 +/** + * virCgroupGetKMemHardLimit: + * + * @group: The cgroup to get mem+kmem hard limit for + * @kb: The mem+kmem amount in kilobytes + * + * Returns: 0 on success + */ +int +virCgroupGetKMemHardLimit(virCgroupPtr group, unsigned long long *kb) +{ + VIR_CGROUP_BACKEND_CALL(group, VIR_CGROUP_CONTROLLER_MEMORY, + getKMemHardLimit, -1, kb); +} + + +/** + * virCgroupGetKMemUsage: + * + * @group: The cgroup to get mem+kmem usage for + * @kb: The mem+kmem amount in kilobytes + * + * Returns: 0 on success + */ +int +virCgroupGetKMemUsage(virCgroupPtr group, unsigned long long *kb) +{ + VIR_CGROUP_BACKEND_CALL(group, VIR_CGROUP_CONTROLLER_MEMORY, + getKMemUsage, -1, kb); +} + + /** * virCgroupSetCpusetMems: * diff --git a/src/util/vircgroup.h b/src/util/vircgroup.h index 372009de4a..edd13742d2 100644 --- a/src/util/vircgroup.h +++ b/src/util/vircgroup.h @@ -191,6 +191,8 @@ int virCgroupGetMemorySoftLimit(virCgroupPtr group, uns= igned long long *kb); int virCgroupSetMemSwapHardLimit(virCgroupPtr group, unsigned long long kb= ); int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *k= b); int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb); +int virCgroupGetKMemHardLimit(virCgroupPtr group, unsigned long long *kb); +int virCgroupGetKMemUsage(virCgroupPtr group, unsigned long long *kb); =20 enum { VIR_CGROUP_DEVICE_READ =3D 1, diff --git a/src/util/vircgroupbackend.h b/src/util/vircgroupbackend.h index 24b45be9bb..db4369325b 100644 --- a/src/util/vircgroupbackend.h +++ b/src/util/vircgroupbackend.h @@ -263,6 +263,14 @@ typedef int (*virCgroupGetMemSwapUsageCB)(virCgroupPtr group, unsigned long long *kb); =20 +typedef int +(*virCgroupGetKMemHardLimitCB)(virCgroupPtr group, + unsigned long long *kb); + +typedef int +(*virCgroupGetKMemUsageCB)(virCgroupPtr group, + unsigned long long *kb); + typedef int (*virCgroupAllowDeviceCB)(virCgroupPtr group, char type, @@ -406,6 +414,8 @@ struct _virCgroupBackend { virCgroupSetMemSwapHardLimitCB setMemSwapHardLimit; virCgroupGetMemSwapHardLimitCB getMemSwapHardLimit; virCgroupGetMemSwapUsageCB getMemSwapUsage; + virCgroupGetKMemHardLimitCB getKMemHardLimit; + virCgroupGetKMemUsageCB getKMemUsage; =20 virCgroupAllowDeviceCB allowDevice; virCgroupDenyDeviceCB denyDevice; diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c index c172eb8b96..268088ff0c 100644 --- a/src/util/vircgroupv1.c +++ b/src/util/vircgroupv1.c @@ -1690,6 +1690,40 @@ virCgroupV1GetMemSwapUsage(virCgroupPtr group, } =20 =20 +static int +virCgroupV1GetKMemHardLimit(virCgroupPtr group, + unsigned long long *kb) +{ + long long unsigned int limit_in_bytes; + + if (virCgroupGetValueU64(group, + VIR_CGROUP_CONTROLLER_MEMORY, + "memory.kmem.limit_in_bytes", &limit_in_bytes= ) < 0) + return -1; + + *kb =3D limit_in_bytes >> 10; + if (*kb >=3D virCgroupV1GetMemoryUnlimitedKB()) + *kb =3D VIR_DOMAIN_MEMORY_PARAM_UNLIMITED; + + return 0; +} + + +static int +virCgroupV1GetKMemUsage(virCgroupPtr group, + unsigned long long *kb) +{ + long long unsigned int usage_in_bytes; + int ret; + ret =3D virCgroupGetValueU64(group, + VIR_CGROUP_CONTROLLER_MEMORY, + "memory.kmem.usage_in_bytes", &usage_in_byt= es); + if (ret =3D=3D 0) + *kb =3D usage_in_bytes >> 10; + return ret; +} + + static int virCgroupV1AllowDevice(virCgroupPtr group, char type, @@ -2085,6 +2119,8 @@ virCgroupBackend virCgroupV1Backend =3D { .setMemSwapHardLimit =3D virCgroupV1SetMemSwapHardLimit, .getMemSwapHardLimit =3D virCgroupV1GetMemSwapHardLimit, .getMemSwapUsage =3D virCgroupV1GetMemSwapUsage, + .getKMemHardLimit =3D virCgroupV1GetKMemHardLimit, + .getKMemUsage =3D virCgroupV1GetKMemUsage, =20 .allowDevice =3D virCgroupV1AllowDevice, .denyDevice =3D virCgroupV1DenyDevice, --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 07:31:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 15547525199261.2822459438856413; Mon, 8 Apr 2019 12:41:59 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 84CD6306D33E; Mon, 8 Apr 2019 19:41:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 51B1B5B6A6; Mon, 8 Apr 2019 19:41:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 11F403FB14; Mon, 8 Apr 2019 19:41:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x38JdEEc006490 for ; Mon, 8 Apr 2019 15:39:14 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7CF6F19C5A; Mon, 8 Apr 2019 19:39:14 +0000 (UTC) Received: from mx1.redhat.com (ext-mx16.extmail.prod.ext.phx2.redhat.com [10.5.110.45]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 774BA19C57 for ; Mon, 8 Apr 2019 19:39:14 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9D2A53082B55 for ; Mon, 8 Apr 2019 19:39:13 +0000 (UTC) Received: by mail-qk1-f193.google.com with SMTP id k130so8777346qke.3 for ; Mon, 08 Apr 2019 12:39:13 -0700 (PDT) Received: from localhost.localdomain ([2804:431:b705:c97:4c33:d4ff:fa50:6e9e]) by smtp.gmail.com with ESMTPSA id q6sm18017791qkj.87.2019.04.08.12.39.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 12:39:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=xyzl3Ab6Fb0Ytp+By37UI5F2iAtYDH6Z0Mkc+anydZY=; b=FJxBaP/mGo6RTAMDncYZ01ncYu4vqqbQDcIye0bvF47tnTeQv2Cexc998dHGV5IjN5 ukv6gV1gdIdIG5LiYOE6VqM+gppCbbPVhju01baLXs7rvOWT3kqpoBYV0PtMow+RHE7N 0gO7mpzVRV8Qfpa1DWq/W89UMDJaREFFmwz/qx77p77Onc9KLCB7EzpO0mdkseVNe3dI aA7UyZtMUN/vX6VF+DF+dteMfSjsR78V2GOeAc/kQCP5/NQ39kbC96F+Eb0jlsoduNjB iiF03XEIAoJQGey4RoMpfrGskqCCHJUdcLm04M3upYKnWLGz4AQ1I67yvslYxMVuoL20 aWrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xyzl3Ab6Fb0Ytp+By37UI5F2iAtYDH6Z0Mkc+anydZY=; b=P9rZ7dvI4TAKkH3kc+2s5uEiRqNdVi/VNGxQonTBQ2nq3S4k4wx+E9SnPvuNMF6fvz dE9J4jp1uSY1d9x/oInv+pxsee9mSMraE2Yt2eL3z0OG2dsijbOi5WwZ7sqa7TJJcjha ozXFPfsYpLtjFWhNQgEFMPcJw4mTMr2M6dokDi9iAo3V6CPo1Mu5w/D1X6P8sFtUYqVA OUr3uF+J8r7ujthV4lfkqsD2BWuqnLb/03jXDo/LlzmH9vet0R0EWfRkoATFk3KsnX0p dwCRiPd3Kb5awPryipwViZmCZXR5kQHLBtGzQf8+1fKEj6t6Ian2n6iRPfjVny9nudLn 1OMQ== X-Gm-Message-State: APjAAAVk87WoJ/0+3vYG9ojc60gZqEqDt9lV3tz00uxUsBilPdXtgdNc tQLhURtr58olyiqu/CyoI5+sT9Al X-Google-Smtp-Source: APXvYqyYuzuMUDJLUdcDK1dsxjWTF2oZMHUoBp8rGR7i7BsqD8uvWCt2q1eX59iOkYc3RI/qxfSl1A== X-Received: by 2002:a37:4c08:: with SMTP id z8mr23638275qka.32.1554752352656; Mon, 08 Apr 2019 12:39:12 -0700 (PDT) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 8 Apr 2019 16:38:59 -0300 Message-Id: <20190408193859.19180-7-jcfaracco@gmail.com> In-Reply-To: <20190408193859.19180-1-jcfaracco@gmail.com> References: <20190408193859.19180-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Mon, 08 Apr 2019 19:39:13 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Mon, 08 Apr 2019 19:39:13 +0000 (UTC) for IP:'209.85.222.193' DOMAIN:'mail-qk1-f193.google.com' HELO:'mail-qk1-f193.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.369 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_PASS) 209.85.222.193 mail-qk1-f193.google.com 209.85.222.193 mail-qk1-f193.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.45 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 6/6] lxc: Introduce method lxcDomainGetBalloonStats X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Mon, 08 Apr 2019 19:41:58 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This method is responsible to fetch all Balloon Memory Stats and store data into virDomainStatsRecordPtr structure. It contains kernel memory used by current container. Signed-off-by: Julio Faracco --- src/lxc/lxc_driver.c | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index a83837077d..286b5609ee 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -2897,6 +2897,68 @@ lxcDomainGetBlkioParameters(virDomainPtr dom, } =20 =20 +static int +lxcDomainGetStatsMemory(virDomainObjPtr dom, + virDomainStatsRecordPtr record, + int *maxparams, + unsigned int supported) +{ + virLXCDomainObjPrivatePtr priv =3D dom->privateData; + unsigned long long swap_usage; + unsigned long long kmem_usage; + unsigned long mem_usage; + unsigned int flags =3D VIR_DOMAIN_STATS_BALLOON; + + virCheckFlags(supported, 0); + + if (virDomainObjCheckActive(dom) < 0) + return 0; + + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "balloon.current", + dom->def->mem.cur_balloon) < 0) + return -1; + + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "balloon.maximum", + virDomainDefGetMemoryTotal(dom->def)) < 0) + return -1; + + if (virCgroupGetMemoryUsage(priv->cgroup, &mem_usage) >=3D 0) { + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "balloon.rss", + mem_usage) < 0) + return -1; + } + + if (virCgroupGetKMemUsage(priv->cgroup, &kmem_usage) >=3D 0) { + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "balloon.kmem", + kmem_usage) < 0) + return -1; + } + + if (virCgroupGetMemSwapUsage(priv->cgroup, &swap_usage) >=3D 0) { + if (virTypedParamsAddULLong(&record->params, + &record->nparams, + maxparams, + "balloon.swap_in", + swap_usage) < 0) + return -1; + } + + return 0; +} + + static int lxcDomainInterfaceStats(virDomainPtr dom, const char *device, @@ -5500,6 +5562,9 @@ lxcDomainGetStats(virConnectPtr conn, if (lxcDomainGetStatsBlock(dom, stat, &maxparams, flags) < 0) goto endjob; =20 + if (lxcDomainGetStatsMemory(dom, stat, &maxparams, flags) < 0) + goto endjob; + virLXCDomainObjEndJob(driver, dom); return stat; =20 --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list