On 11/25/14 16:43, Eric Blake wrote:
On 11/25/2014 02:10 AM, Peter Krempa wrote:
> On 11/25/14 06:21, Eric Blake wrote:
>> I noticed that for an offline domain, 'virsh domstats --block $dom'
>> was producing just the domain name, with no stats. But the older
>> 'virsh domblkinfo' works just fine on offline domains. Furthermore,
>> I'm about to make block stats optionally more complex to cover
>> backing chains, where block.count will no longer equal the number
>> of <disks> for a domain. For these reasons, it is nicer if the
>> statistics output always includes minimal information on every
>> resource being described, with enough to correlate back to host
>> resources, and even when some statistics are available only on a
>> running domain.
>>
>> + * "block.<num>.source" - string describing the source of block
device <num>,
>> + * such as the host path of a file or device.
>
> Fair enough as long as we document that we only return it for
> non-network sources. We had quite a few problems with network sources so
> I'd rather not expose it for those due to possible ambiguity.
Sure, I can do that. Maybe I should then name it block.<num>.path or
block.<num>.file, to make it obvious that it is only a file name? And I
suppose we could always add other fields later if it turns out to be
useful on network devices, but I won't worry about it for now.
I'd go with path. File is not quite right with physical devices/lvs used
as source.
>> *
>> * Specifying VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS as @flags makes
>> * the function return error in case some of the stat types in @stats were
>> - * not recognized by the daemon.
>> + * not recognized by the daemon. However, even with this flag, a hypervisor
>> + * may omit individual fields within a group if the information is not
>> + * available; as an extreme example, a supported group may produce zero
>> + * fields for offline domains if the statistics are meaningful only for a
>> + * running domain.
>> *
>
> The code changes are not entirely related to this doc change.
Should I split it into a separate patch, then?
I think it would make more sense.
>> - QEMU_ADD_NAME_PARAM(record, maxparams, "block", i,
disk->dst);
>> + QEMU_ADD_NAME_PARAM(record, maxparams, "block",
"name", i, disk->dst);
>> + if (disk->src && disk->src->path)
>
> && virStorageSourceIsLocalStorage(disk->src)
Indeed, that fits with your request to limit to files.
Peter