All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wen Congyang <wency@cn.fujitsu.com>
To: Stefan Hajnoczi <stefanha@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <famz@redhat.com>,
	zhanghailiang <zhang.zhanghailiang@huawei.com>,
	qemu block <qemu-block@nongnu.org>,
	Jiang Yunhong <yunhong.jiang@intel.com>,
	Dong Eddie <eddie.dong@intel.com>,
	qemu devel <qemu-devel@nongnu.org>,
	"Michael R. Hines" <mrhines@linux.vnet.ibm.com>,
	Max Reitz <mreitz@redhat.com>, Gonglei <arei.gonglei@huawei.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Yang Hongyang <yanghy@cn.fujitsu.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v10 02/10] Backup: clear all bitmap when doing block checkpoint
Date: Tue, 13 Oct 2015 17:13:14 +0800	[thread overview]
Message-ID: <561CCB2A.3080501@cn.fujitsu.com> (raw)
In-Reply-To: <20151012134543.GA4053@stefanha-thinkpad.redhat.com>

On 10/12/2015 09:45 PM, Stefan Hajnoczi wrote:
> On Fri, Sep 25, 2015 at 02:17:30PM +0800, Wen Congyang wrote:
>> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
>> Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
>> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
>> Reviewed-by: Jeff Cody <jcody@redhat.com>
>> ---
>>  block/backup.c           | 14 ++++++++++++++
>>  blockjob.c               | 11 +++++++++++
>>  include/block/blockjob.h | 12 ++++++++++++
>>  3 files changed, 37 insertions(+)
>>
>> diff --git a/block/backup.c b/block/backup.c
>> index c61e4c3..5e5995e 100644
>> --- a/block/backup.c
>> +++ b/block/backup.c
>> @@ -214,11 +214,25 @@ static void backup_iostatus_reset(BlockJob *job)
>>      }
>>  }
>>  
>> +static void backup_do_checkpoint(BlockJob *job, Error **errp)
>> +{
>> +    BackupBlockJob *backup_job = container_of(job, BackupBlockJob, common);
>> +
>> +    if (backup_job->sync_mode != MIRROR_SYNC_MODE_NONE) {
>> +        error_setg(errp, "The backup job only supports block checkpoint in"
>> +                   " sync=none mode");
>> +        return;
>> +    }
>> +
>> +    hbitmap_reset_all(backup_job->bitmap);
>> +}
> 
> Is this a fast way to stop and then start a new backup blockjob without
> emitting block job lifecycle events?
> 
> Not sure the blockjob_do_checkpoint() interface is appropriate.  Is
> there any other block job type that will implement .do_checkpoint()?

Currently, the answer is no.

> 
> COLO block replication could call a public backup_do_checkpoint()
> function.  That way the direct coupling between COLO and the backup
> block job is obvious.  I'm not convinced a generic interface like
> blockjob_do_checkpoint() makes sense since it's really not a generic
> operation that makes sense for other block job types.
> 
> void backup_do_checkpoint(BlockJob *job, Error **errp)
> {
>     BackupBlockJob *s;
> 
>     if (job->driver != backup_job_driver) {
>         error_setg(errp, "expected backup block job type for "
> 	           "checkpoint, got %d", job->driver->job_type);
>         return;
>     }
> 
>     s = container_of(job, BackupBlockJob, common);
>     ...
> }

In a older version, I implement it like this, but Paolo didn't like it.

> 
> Please also make the function name and documentation more specific.
> Instead of "do" maybe this should be "pre" or "post" to indicate whether
> this happens before or after the checkpoint commit.  What happens if

OK

> this function returns an error?

We just return this error to COLO, and COLO will do failover.

Thanks
Wen Congyang

> .
> 

  reply	other threads:[~2015-10-13  9:13 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-25  6:17 [Qemu-devel] [PATCH v10 00/10] Block replication for continuous checkpoints Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 01/10] allow writing to the backing file Wen Congyang
2015-10-09 19:07   ` Eric Blake
2015-10-30  5:49     ` Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 02/10] Backup: clear all bitmap when doing block checkpoint Wen Congyang
2015-10-09 19:09   ` Eric Blake
2015-10-12 13:45   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-10-13  9:13     ` Wen Congyang [this message]
2015-10-14 14:12       ` Stefan Hajnoczi
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 03/10] Allow creating backup jobs when opening BDS Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 04/10] block: make bdrv_put_ref_bh_schedule() as a public API Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 05/10] docs: block replication's description Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 06/10] Add new block driver interfaces to control block replication Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 07/10] quorum: implement block driver interfaces for " Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 08/10] Implement new driver " Wen Congyang
2015-10-12 16:25   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-10-13  8:59     ` Wen Congyang
2015-10-13  9:41       ` Fam Zheng
2015-10-13  9:46         ` Wen Congyang
2015-10-13 10:12           ` Fam Zheng
2015-10-14  0:55             ` Wen Congyang
2015-10-12 16:27   ` Stefan Hajnoczi
2015-10-13  9:08     ` Wen Congyang
2015-10-14 14:27       ` Stefan Hajnoczi
2015-10-15  2:19         ` Wen Congyang
2015-10-15 14:55           ` Stefan Hajnoczi
2015-10-16  0:52             ` Wen Congyang
2015-10-16  2:22             ` Wen Congyang
2015-10-16 11:37               ` Stefan Hajnoczi
2015-10-27  2:57                 ` Wen Congyang
2015-10-27 14:41                   ` Stefan Hajnoczi
2015-10-12 16:31   ` Stefan Hajnoczi
2015-10-13  9:09     ` Wen Congyang
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 09/10] support replication driver in blockdev-add Wen Congyang
2015-10-09 14:40   ` Eric Blake
2015-09-25  6:17 ` [Qemu-devel] [PATCH v10 10/10] Add a new API to start/stop replication, do checkpoint to all BDSes Wen Congyang
2015-10-07  6:39 ` [Qemu-devel] [PATCH v10 00/10] Block replication for continuous checkpoints Wen Congyang
2015-10-09 12:52   ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=561CCB2A.3080501@cn.fujitsu.com \
    --to=wency@cn.fujitsu.com \
    --cc=arei.gonglei@huawei.com \
    --cc=dgilbert@redhat.com \
    --cc=eddie.dong@intel.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=mrhines@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=stefanha@redhat.com \
    --cc=yanghy@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.com \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.