[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver |
Date: |
Thu, 21 Feb 2013 13:46:02 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Feb 21, 2013 at 05:23:30AM +0000, Dietmar Maurer wrote:
> > > +static void coroutine_fn backup_run(void *opaque) {
> > > + BackupBlockJob *job = opaque;
> > > + BlockDriverState *bs = job->common.bs;
> > > + assert(bs);
> > > +
> > > + int64_t start, end;
> > > +
> > > + start = 0;
> > > + end = (bs->total_sectors + BACKUP_BLOCKS_PER_CLUSTER - 1) /
> > > + BACKUP_BLOCKS_PER_CLUSTER;
> > > +
> > > + DPRINTF("backup_run start %s %zd %zd\n", bdrv_get_device_name(bs),
> > > + start, end);
> > > +
> > > + int ret = 0;
> > > +
> > > + for (; start < end; start++) {
> > > + if (block_job_is_cancelled(&job->common)) {
> > > + ret = -1;
> > > + break;
> > > + }
> > > +
> > > + /* we need to yield so that qemu_aio_flush() returns.
> > > + * (without, VM does not reboot)
> > > + * Note: use 1000 instead of 0 (0 prioritize this task too
> > > + much)
> >
> > indentation
> >
> > What does "0 prioritize this task too much" mean? If no rate limit has
> > been set
> > the job should run at full speed. We should not hardcode arbitrary delays
> > like
> > 1000.
>
> The VM itself gets somehow slower during backup - do not know why. As
> workaround sleep 1000 works.
Please find out why, it's a bug that an arbitrary sleep hides but
doesn't fix (plus the sleep makes backup less efficient).
If the VM becomes slow this loop is probably "spinning" without doing
blocking I/O and only doing sleep 0. I guess that can happen when you
loop over blocks that have already been backed up (bit has been set)?
Stefan
- [Qemu-devel] [PATCH v4 0/6] Efficient VM backup for qemu, Dietmar Maurer, 2013/02/20
- [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/20
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Stefan Hajnoczi, 2013/02/20
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/21
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/25
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Stefan Hajnoczi, 2013/02/25
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/25
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Stefan Hajnoczi, 2013/02/26
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/26
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Stefan Hajnoczi, 2013/02/27
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/27
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Kevin Wolf, 2013/02/28
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Stefan Hajnoczi, 2013/02/26
- Re: [Qemu-devel] [PATCH v4 2/6] add basic backup support to block driver, Dietmar Maurer, 2013/02/26