From nobody Thu May 15 10:12:06 2025 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; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1510563060599593.9189063111966; Mon, 13 Nov 2017 00:51:00 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 42E4F25C39; Mon, 13 Nov 2017 08:50:59 +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 1BE0468D54; Mon, 13 Nov 2017 08:50:59 +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 DD6C51800FC6; Mon, 13 Nov 2017 08:50:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id vAD8okME016303 for ; Mon, 13 Nov 2017 03:50:46 -0500 Received: by smtp.corp.redhat.com (Postfix) id EC055783B6; Mon, 13 Nov 2017 08:50:46 +0000 (UTC) Received: from caroline.localdomain (unknown [10.43.2.67]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9900678405 for ; Mon, 13 Nov 2017 08:50:46 +0000 (UTC) Received: from caroline.brq.redhat.com (caroline.brq.redhat.com [127.0.0.1]) by caroline.localdomain (Postfix) with ESMTP id 99CE4123A80 for ; Mon, 13 Nov 2017 09:50:41 +0100 (CET) From: Martin Kletzander To: libvir-list@redhat.com Date: Mon, 13 Nov 2017 09:50:26 +0100 Message-Id: <0d6dab3875879368c56d55ef2c9c04778a77a50a.1510560300.git.mkletzan@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 11/21] conf: Format cache banks in capabilities with virPrettySize 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: , MIME-Version: 1.0 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.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 13 Nov 2017 08:50:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Martin Kletzander Reviewed-by: John Ferlan --- src/conf/capabilities.c | 45 ++++++++++++++----= ---- tests/vircaps2xmldata/vircaps-x86_64-caches.xml | 2 +- .../vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml | 4 +- .../vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml | 4 +- tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml | 4 +- 5 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 095ef51c424a..5bf8ac2019f9 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -883,7 +883,8 @@ virCapabilitiesFormatCaches(virBufferPtr buf, for (i =3D 0; i < ncaches; i++) { virCapsHostCacheBankPtr bank =3D caches[i]; char *cpus_str =3D virBitmapFormat(bank->cpus); - bool kilos =3D !(bank->size % 1024); + const char *unit =3D NULL; + unsigned long long short_size =3D virPrettySize(bank->size, &unit); =20 if (!cpus_str) return -1; @@ -897,32 +898,44 @@ virCapabilitiesFormatCaches(virBufferPtr buf, "size=3D'%llu' unit=3D'%s' cpus=3D'%s'", bank->id, bank->level, virCacheTypeToString(bank->type), - bank->size >> (kilos * 10), - kilos ? "KiB" : "B", - cpus_str); + short_size, unit, cpus_str); VIR_FREE(cpus_str); =20 virBufferSetChildIndent(&controlBuf, buf); for (j =3D 0; j < bank->ncontrols; j++) { - bool min_kilos =3D !(bank->controls[j]->granularity % 1024); - - /* Only use KiB if both values are divisible */ - if (bank->controls[j]->min) - min_kilos =3D min_kilos && !(bank->controls[j]->min % 1024= ); + const char *min_unit; + unsigned long long gran_short_size =3D bank->controls[j]->gran= ularity; + unsigned long long min_short_size =3D bank->controls[j]->min; + + gran_short_size =3D virPrettySize(gran_short_size, &unit); + min_short_size =3D virPrettySize(min_short_size, &min_unit); + + /* Only use the smaller unit if they are different */ + if (min_short_size) { + unsigned long long gran_div; + unsigned long long min_div; + + gran_div =3D bank->controls[j]->granularity / gran_short_s= ize; + min_div =3D bank->controls[j]->min / min_short_size; + + if (min_div > gran_div) { + min_short_size *=3D min_div / gran_div; + } else if (min_div < gran_div) { + unit =3D min_unit; + gran_short_size *=3D gran_div / min_div; + } + } =20 virBufferAsprintf(&controlBuf, "controls[j]->granularity >> (min_kilos= * 10)); + gran_short_size); =20 - if (bank->controls[j]->min) { - virBufferAsprintf(&controlBuf, - " min=3D'%llu'", - bank->controls[j]->min >> (min_kilos * 1= 0)); - } + if (min_short_size) + virBufferAsprintf(&controlBuf, " min=3D'%llu'", min_short_= size); =20 virBufferAsprintf(&controlBuf, " unit=3D'%s' type=3D'%s' maxAllocs=3D'%u'/>= \n", - min_kilos ? "KiB" : "B", + unit, virCacheTypeToString(bank->controls[j]->scop= e), bank->controls[j]->max_allocation); } diff --git a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml b/tests/vircap= s2xmldata/vircaps-x86_64-caches.xml index fe0be6d08fa7..0c6f3769a2a7 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml @@ -29,7 +29,7 @@ - + =20 diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/v= ircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml index 7361537bfb56..443917c62d69 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml @@ -41,11 +41,11 @@ - + - + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/v= ircaps2xmldata/vircaps-x86_64-resctrl-skx.xml index 4e91c87de3b1..0cd25e59a9e0 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml @@ -22,8 +22,8 @@ - - + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/virca= ps2xmldata/vircaps-x86_64-resctrl.xml index eb02ad3322a2..7629259294d6 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml @@ -41,10 +41,10 @@ - + - + --=20 2.15.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list