All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Fam Zheng <famz@redhat.com>
Cc: qemu-devel@nongnu.org, Kevin Wolf <kwolf@redhat.com>,
	qemu-block@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v2 00/16] block: Protect AIO context change with perm API
Date: Thu, 11 May 2017 16:43:15 -0400	[thread overview]
Message-ID: <20170511204315.GT24584@stefanha-x1.localdomain> (raw)
In-Reply-To: <20170419094356.19826-1-famz@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1273 bytes --]

On Wed, Apr 19, 2017 at 05:43:40PM +0800, Fam Zheng wrote:
> v2: Address Stefan's comments:
> 
>     - Clean up redundancy in bdrv_format_default_perms change.
>     - Add a test case to check both success/failure cases.
>       A failure case is not possible at user interface level because of other
>       checks we have, so write a unit test in tests/test-blk-perm.c.
> 
> Eject / change of scsi-cd on a virtio-scsi dataplane bus causes abort() because
> the new BDS doesn't get proper bdrv_set_aio_context().
> 
> Store the AioContext in BB and do it in blk_insert_bs. That is done by
> Vladimir's patch.
> 
> Other patches are to make sure such a bdrv_set_aio_context() doesn't interfere
> with other BBs using other nodes from this graph.

Looks pretty good.  I had two comments that apply across all patches:

First, it is not safe to enable the new permission without registering
an aio notifier.  Another user could look up the BDS and call
bdrv_set_aio_context() on it.  I believe this bug is present for block
jobs that have additional BDSes like base/target/etc.

Second, patches that post-pone bdrv_set_aio_context() must take care to
acquire the AioContext for BDS accesses that happen before the next
bdrv_set_aio_context() call.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

      parent reply	other threads:[~2017-05-11 20:43 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-19  9:43 [Qemu-devel] [PATCH v2 00/16] block: Protect AIO context change with perm API Fam Zheng
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 01/16] block: Define BLK_PERM_AIO_CONTEXT_CHANGE Fam Zheng
2017-05-11 19:26   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 02/16] block-backend: Add blk_request_perm Fam Zheng
2017-05-11 19:32   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-05-24  2:16     ` Fam Zheng
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 03/16] blockjob: Add BLK_PERM_AIO_CONTEXT_CHANGE shared perm on bs Fam Zheng
2017-05-11 19:33   ` Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 04/16] blockjob: Allow aio context change on intermediate nodes Fam Zheng
2017-05-11 19:34   ` Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 05/16] block: Propagate BLK_PERM_AIO_CONTEXT_CHANGE down the graph Fam Zheng
2017-05-11 19:35   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 06/16] backup: Request BLK_PERM_AIO_CONTEXT_CHANGE on target Fam Zheng
2017-05-11 19:41   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-05-24  2:18     ` Fam Zheng
2017-05-31  9:39       ` Stefan Hajnoczi
2017-05-31  9:57         ` Fam Zheng
2017-06-01 13:26           ` Stefan Hajnoczi
2017-06-05  8:34             ` Fam Zheng
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 07/16] backup: Do initial aio context move of target via BB interface Fam Zheng
2017-05-11 20:00   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 08/16] mirror: Request aio context change permission on target Fam Zheng
2017-05-11 20:01   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 09/16] commit: Allow aio context change on s->base Fam Zheng
2017-05-11 20:06   ` Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 10/16] mirror: Do initial aio context move of target via BB interface Fam Zheng
2017-05-11 20:27   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-05-24  2:23     ` Fam Zheng
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 11/16] virtio-scsi: Request BLK_PERM_AIO_CONTEXT_CHANGE for dataplane Fam Zheng
2017-05-11 20:28   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 12/16] virtio-blk: " Fam Zheng
2017-05-11 20:29   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 13/16] blk: fix aio context loss on media change Fam Zheng
2017-05-11 20:31   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 14/16] nbd: Allow BLK_PERM_AIO_CONTEXT_CHANGE on BB Fam Zheng
2017-05-11 20:32   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 15/16] block: Add perm assertion on blk_set_aio_context Fam Zheng
2017-05-11 20:33   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-19  9:43 ` [Qemu-devel] [PATCH v2 16/16] tests: Add test case for BLK_PERM_AIO_CONTEXT_CHANGE Fam Zheng
2017-05-11 20:36   ` Stefan Hajnoczi
2017-05-11 20:43 ` Stefan Hajnoczi [this message]

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=20170511204315.GT24584@stefanha-x1.localdomain \
    --to=stefanha@gmail.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --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 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.