HI, Deniel and Adam. Have the patchset been merged into libvirt upstream? On Fri, Jul 22, 2011 at 11:01 PM, Adam Litke <agl@xxxxxxxxxx> wrote: > Thanks Daniel. The upstream code is looking good. I will work on > adding some documentation to the development guide. > > On 07/22/2011 01:07 AM, Daniel Veillard wrote: >> On Thu, Jul 21, 2011 at 01:55:04PM -0500, Adam Litke wrote: >>> Here are the patches to implement the BlockPull/BlockJob API as discussed and >>> agreed to. I am testing with a python script (included for completeness as the >>> final patch). The qemu monitor interface is not expected to change in the >>> future. Stefan is planning to submit placeholder commands for upstream qemu >>> until the generic streaming support is implemented. >>> >>> Changes since V1: >>> - Make virDomainBlockPullAbort() and virDomainGetBlockPullInfo() into a >>> generic BlockJob interface. >>> - Added virDomainBlockJobSetSpeed() >>> - Rename VIR_DOMAIN_EVENT_ID_BLOCK_PULL event to fit into block job API >>> - Add bandwidth argument to virDomainBlockPull() >>> >>> Summary of changes since first generation patch series: >>> - Qemu dropped incremental streaming so remove libvirt incremental >>> BlockPull() API >>> - Rename virDomainBlockPullAll() to virDomainBlockPull() >>> - Changes required to qemu monitor handlers for changed command names >>> >>> -- >>> >>> To help speed the provisioning process for large domains, new QED disks are >>> created with backing to a template image. These disks are configured with >>> copy on read such that blocks that are read from the backing file are copied >>> to the new disk. This reduces I/O over a potentially costly path to the >>> backing image. >>> >>> In such a configuration, there is a desire to remove the dependency on the >>> backing image as the domain runs. To accomplish this, qemu will provide an >>> interface to perform sequential copy on read operations during normal VM >>> operation. Once all data has been copied, the disk image's link to the >>> backing file is removed. >>> >>> The virDomainBlockPull API family brings this functionality to libvirt. >>> >>> virDomainBlockPull() instructs the hypervisor to stream the entire device in >>> the background. Progress of this operation can be checked with the function >>> virDomainBlockJobInfo(). An ongoing stream can be cancelled with >>> virDomainBlockJobAbort(). virDomainBlockJobSetSpeed() allows you to limit the >>> bandwidth that the operation may consume. >>> >>> An event (VIR_DOMAIN_EVENT_ID_BLOCK_JOB) will be emitted when a disk has been >>> fully populated or if a BlockPull() operation was terminated due to an error. >>> This event is useful to avoid polling on virDomainBlockJobInfo() for >>> completion and could also be used by the security driver to revoke access to >>> the backing file when it is no longer needed. >> >> Thanks Adam for that revised patch set. >> >> ACK >> >> It all looked good to me, based on previous review and a last look. >> I just had to fix a few merge conflicts due to new entry points being >> added in the meantime and one commit message, but basically it was clean :-) >> >> So I pushed the set except 8 of course. I'm not sure if we should try >> to store it in the example, or on the wiki. The Wiki might be a bit more >> logical because I'm not sure we can run the test as is now in all >> setups. >> >> >> I think the remaining item would be to add documentation about how to >> use this, the paragraphs above should probably land somewhere on the web >> site, ideally on the development guide >> http://libvirt.org/devguide.html >> but I'm open to suggestions :-) >> >> Daniel >> > > -- > Adam Litke > IBM Linux Technology Center > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list > -- Regards, Zhi Yong Wu -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list