On 02/19/2013 04:31 AM, Dietmar Maurer wrote: > Function backup_job_create() creates a block job to backup a block device. > The coroutine is started with backup_job_start(). > > We call backup_do_cow() for each write during backup. That function > reads the original data and pass it to backup_dump_cb(). > > The tracked_request infrastructure is used to serialize access. > > Currently backup cluster size is hardcoded to 65536 bytes. > > Signed-off-by: Dietmar Maurer <diet...@proxmox.com> > ---
I'm only doing a casual review of low-hanging fruit; I'm not familiar enough with coroutines or COW usage in qemu to do an in-depth review of the actual algorithm. > +++ b/backup.c > @@ -0,0 +1,338 @@ > +/* > + * QEMU backup > + * > + * Copyright (C) 2012 Proxmox Server Solutions It's 2013 now. > + /* we need to yield so that qemu_aio_flush() returns. > + * (without, VM does not reboot) > + * Note: use 1000 instead of 0 (0 priorize this task too much) s/priorize/prioritize/ > +++ b/backup.h > @@ -0,0 +1,32 @@ > +/* > + * QEMU backup related definitions > + * > + * Copyright (C) Proxmox Server Solutions Year(s)? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature