qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: qemu-devel@nongnu.org, Kevin Wolf <kwolf@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	qemu-block@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH RFC 04/16] block: Propagate BLK_PERM_AIO_CONTEXT_CHANGE down the graph
Date: Tue, 18 Apr 2017 17:24:28 +0800	[thread overview]
Message-ID: <20170418092428.GB490@lemon.lan> (raw)
In-Reply-To: <20170410085728.GB2567@stefanha-x1.localdomain>

On Mon, 04/10 09:57, Stefan Hajnoczi wrote:
> On Tue, Mar 21, 2017 at 11:16:23AM +0800, Fam Zheng wrote:
> > @@ -1713,21 +1714,22 @@ void bdrv_format_default_perms(BlockDriverState *bs, BdrvChild *c,
> >          perm |= BLK_PERM_CONSISTENT_READ;
> >          shared &= ~(BLK_PERM_WRITE | BLK_PERM_RESIZE);
> >      } else {
> > -        /* We want consistent read from backing files if the parent needs it.
> > +        /* We want consistent read and aio context change from backing files if
> > +         * the parent needs it.
> >           * No other operations are performed on backing files. */
> > -        perm &= BLK_PERM_CONSISTENT_READ;
> > +        perm &= BLK_PERM_CONSISTENT_READ | BLK_PERM_AIO_CONTEXT_CHANGE;
> >  
> > -        /* If the parent can deal with changing data, we're okay with a
> > +        /* If the parent can deal with changing aio context, we're okay too;
> > +         * If the parent can deal with changing data, we're okay with a
> >           * writable and resizable backing file. */
> >          /* TODO Require !(perm & BLK_PERM_CONSISTENT_READ), too? */
> > +        shared &= BLK_PERM_AIO_CONTEXT_CHANGE | BLK_PERM_WRITE;
> >          if (shared & BLK_PERM_WRITE) {
> > -            shared = BLK_PERM_WRITE | BLK_PERM_RESIZE;
> > -        } else {
> > -            shared = 0;
> > +            shared |= BLK_PERM_WRITE | BLK_PERM_RESIZE;
> 
> We already have BLK_PERM_WRITE so we're just adding BLK_PERM_RESIZE.
> The following is clearer:
> 
>   shared |= BLK_PERM_RESIZE;
> 
> >          }
> >  
> >          shared |= BLK_PERM_CONSISTENT_READ | BLK_PERM_GRAPH_MOD |
> > -                  BLK_PERM_WRITE_UNCHANGED;
> > +                  BLK_PERM_WRITE_UNCHANGED | BLK_PERM_AIO_CONTEXT_CHANGE;
> 
> Why was shared &= BLK_PERM_AIO_CONTEXT_CHANGE necessary above if we
> unconditionally OR it here?

It's redundant. Will fix both.

Fam

  reply	other threads:[~2017-04-18  9:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-21  3:16 [Qemu-devel] [PATCH RFC 00/16] block: Protect AIO context change with perm API Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 01/16] block: Define BLK_PERM_AIO_CONTEXT_CHANGE Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 02/16] block-backend: Add blk_request_perm Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 03/16] blockjob: Add BLK_PERM_AIO_CONTEXT_CHANGE shared perm on bs Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 04/16] block: Propagate BLK_PERM_AIO_CONTEXT_CHANGE down the graph Fam Zheng
2017-04-10  8:57   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-18  9:24     ` Fam Zheng [this message]
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 05/16] backup: Request BLK_PERM_AIO_CONTEXT_CHANGE on target Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 06/16] backup: Do initial aio context move of target via BB interface Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 07/16] mirror: Request aio context change permission on target Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 08/16] commit: Allow aio context change on s->base Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 09/16] mirror: Do initial aio context move of target via BB interface Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 10/16] virtio-scsi: Request BLK_PERM_AIO_CONTEXT_CHANGE for dataplane Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 11/16] virtio-blk: " Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 12/16] blk: fix aio context loss on media change Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 13/16] nbd: Allow BLK_PERM_AIO_CONTEXT_CHANGE on BB Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 14/16] block: Add perm assertion on blk_set_aio_context Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 15/16] mirror: Lazily request aio context change permission on target Fam Zheng
2017-03-21  3:16 ` [Qemu-devel] [PATCH RFC 16/16] Revert "mirror: Request aio context change permission on target" Fam Zheng
2017-04-10  9:04 ` [Qemu-devel] [Qemu-block] [PATCH RFC 00/16] block: Protect AIO context change with perm API Stefan Hajnoczi
2017-04-10 10:58   ` Fam Zheng

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=20170418092428.GB490@lemon.lan \
    --to=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=stefanha@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).