Re: [PATCH v2 02/12] qemu: let blockinfo reuse virStorageSource

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

 



On 12/16/2014 05:41 AM, Peter Krempa wrote:
> On 12/16/14 09:04, Eric Blake wrote:
>> Right now, grabbing blockinfo always calls stat on the disk, then
>> opens the image to determine the capacity, using a throw-away
>> virStorageSourcePtr.  This has a couple of drawbacks:
>>

>>
>> While this patch does not optimize reuse of information in point
>> 1, it does get us closer to being able to do so; by updating a
>> structure that survives between consecutive calls.
>>

>>
>> +    /* FIXME: For an offline domain, we always want to check current
>> +     * on-disk statistics (as users have been known to change offline
>> +     * images behind our backs).  For a running domain, however, it
>> +     * would be nice to avoid opening a file (particularly since
>> +     * reading a file while qemu is writing it risks the reader seeing
>> +     * bogus data), or even avoid a stat, if the information
>> +     * remembered from the previous run is still viable.
>> +     *
>> +     * For read-only disks, nothing should be changing unless the user
>> +     * has requested a block-commit action.  For read-write disks, we
>> +     * know some special cases: capacity should not change without a
>> +     * block-resize (where capacity is the only stat that requires
>> +     * opening a file, and even then, only for non-raw files); and
>> +     * physical size of a raw image or of a block device should
>> +     * likewise not be changing without block-resize.  On the other
>> +     * hand, allocation of a raw file can change (if the file is
>> +     * sparse, but the amount of sparseness changes due to writes or
>> +     * punching holes), and physical size of a non-raw file can
>> +     * change.
>> +     */
> 
> I still don't see this comment vanishing in this series. Are you planing
> on getting rid of the code that opens the file on disk while the VM is
> alive?

Correct, that's where my other email (subject "virDomainGetBlockInfo
meanings") would come into play - I'm still trying to work on additional
patches to reuse code correctly and minimize file probes where possible,
but those can be followup patches.  So I will go ahead and push the
patches that have been ACKed so far.

> 
>>      if (virStorageSourceIsLocalStorage(disk->src)) {
>>          if (!disk->src->path) {
>>              virReportError(VIR_ERR_INVALID_ARG,
> 
> ACK

Thanks for the reviews :)

-- 
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]