[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver |
Date: |
Thu, 16 May 2013 09:30:46 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, May 16, 2013 at 11:27:38AM +0800, Wenchao Xia wrote:
> > +/* See if in-flight requests overlap and wait for them to complete */
> > +static void coroutine_fn wait_for_overlapping_requests(BackupBlockJob *job,
> > + int64_t start,
> > + int64_t end)
> > +{
> > + CowRequest *req;
> > + bool retry;
> > +
> > + do {
> > + retry = false;
> > + QLIST_FOREACH(req, &job->inflight_reqs, list) {
> > + if (end > req->start && start < req->end) {
> > + qemu_co_queue_wait(&req->wait_queue);
> > + retry = true;
> > + break;
> > + }
> > + }
> > + } while (retry);
> > +}
> > +
>
> In my understanding, there will be possible two program routines entering
> here at same time since it holds read lock instead of write lock, and
> they may also modify job->inflight_reqs, is it possible a race
> condition here? I am not sure whether back-ground job will becomes a
> thread.
No, all operations on a BlockDriverState execute in the same event loop
thread. Only coroutine synchronization is necessary, which is provided
in these patches.
- Re: [Qemu-devel] [PATCH v3 1/8] block: add bdrv_add_before_write_cb(), (continued)
- [Qemu-devel] [PATCH v3 5/8] blockdev: rename BlkTransactionStates to singular, Stefan Hajnoczi, 2013/05/15
- [Qemu-devel] [PATCH v3 3/8] block: add drive-backup QMP command, Stefan Hajnoczi, 2013/05/15
- [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Stefan Hajnoczi, 2013/05/15
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Wenchao Xia, 2013/05/15
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Paolo Bonzini, 2013/05/20
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Stefan Hajnoczi, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Paolo Bonzini, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Dietmar Maurer, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Paolo Bonzini, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Dietmar Maurer, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Paolo Bonzini, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Dietmar Maurer, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Dietmar Maurer, 2013/05/21
- Re: [Qemu-devel] [PATCH v3 2/8] block: add basic backup support to block driver, Paolo Bonzini, 2013/05/21