Re: [PATCH 09/12] getstats: prepare for dynamic block.count stat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/08/2014 07:26 AM, Peter Krempa wrote:
> On 12/08/14 15:19, Peter Krempa wrote:
>> On 12/06/14 09:14, Eric Blake wrote:
>>> A coming patch will make it optionally possible to list backing
>>> chain block stats; in this mode of operation, block.counts is no
>>> longer the number of <disks> in the domain, but the number of
>>> blocks in the array being reported.  We still want block.count
>>> listed first, but rather than iterate the tree twice (once to
>>> count, and once to list stats), it's easier to just touch things
>>> up after the fact.
>>>
>>> * src/qemu/qemu_driver.c (qemuDomainGetStatsBlock): Compute count
>>> after the fact.
>>>
>>> Signed-off-by: Eric Blake <eblake@xxxxxxxxxx>
>>> ---
>>>  src/qemu/qemu_driver.c | 9 ++++++++-
>>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>>
> 
> Compiler complains:
> 
> qemu/qemu_driver.c: In function 'qemuDomainGetStatsBlock':
> qemu/qemu_driver.c:18630:46: error: 'i' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>          record->params[count_index].value.ui = i;
>                                               ^

You must be compiling at -O2 while I was not :)

Found the culprit: the QEMU_ADD_COUNT_PARAM macro has a hidden goto,
that can bypass the initialization of i=0 in the for loop; the solution
is trivial.

>>
>> ACK,
>>
> 
> if you fix the issue above.

I'll be pushing the acked patches that can be reshuffled without
dependencies, and reposting the rest of the series with fixes
incorporated...

diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index bb516af..78d1bdd 100644
--- i/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -18539,7 +18539,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
                         int *maxparams,
                         unsigned int privflags)
 {
-    size_t i;
+    size_t i = 0;
     int ret = -1;
     int rc;
     virHashTablePtr stats = NULL;
@@ -18568,7 +18568,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
     count_index = record->nparams;
     QEMU_ADD_COUNT_PARAM(record, maxparams, "block", 0);

-    for (i = 0; i < dom->def->ndisks; i++) {
+    for (i; i < dom->def->ndisks; i++) {
         qemuBlockStats *entry;
         virDomainDiskDefPtr disk = dom->def->disks[i];



-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]