All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Lieven <pl@kamp.de>
To: dillaman@redhat.com
Cc: Kevin Wolf <kwolf@redhat.com>,
	Christian Theune <ct@flyingcircus.io>,
	qemu-devel <qemu-devel@nongnu.org>,
	qemu-block <qemu-block@nongnu.org>, Max Reitz <mreitz@redhat.com>
Subject: Re: [PATCH 4/7] block/rbd: add bdrv_{attach,detach}_aio_context
Date: Thu, 14 Jan 2021 20:49:10 +0100	[thread overview]
Message-ID: <a4874e73-7f6c-53f2-23c8-ec76b055ec57@kamp.de> (raw)
In-Reply-To: <CA+aFP1Cbnt99DRQLwFRhxVj5Mnow6PtQpa0k4-ojOCJt3+JPJw@mail.gmail.com>

Am 14.01.21 um 20:18 schrieb Jason Dillaman:
> On Sun, Dec 27, 2020 at 11:42 AM Peter Lieven <pl@kamp.de> wrote:
>> Signed-off-by: Peter Lieven <pl@kamp.de>
>> ---
>>  block/rbd.c | 21 +++++++++++++++++++--
>>  1 file changed, 19 insertions(+), 2 deletions(-)
>>
>> diff --git a/block/rbd.c b/block/rbd.c
>> index a2da70e37f..27b232f4d8 100644
>> --- a/block/rbd.c
>> +++ b/block/rbd.c
>> @@ -91,6 +91,7 @@ typedef struct BDRVRBDState {
>>      char *namespace;
>>      uint64_t image_size;
>>      uint64_t object_size;
>> +    AioContext *aio_context;
>>  } BDRVRBDState;
>>
>>  static int qemu_rbd_connect(rados_t *cluster, rados_ioctx_t *io_ctx,
>> @@ -749,6 +750,8 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags,
>>          }
>>      }
>>
>> +    s->aio_context = bdrv_get_aio_context(bs);
>> +
>>      /* When extending regular files, we get zeros from the OS */
>>      bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE;
>>
>> @@ -839,8 +842,7 @@ static void rbd_finish_aiocb(rbd_completion_t c, RADOSCB *rcb)
>>      rcb->ret = rbd_aio_get_return_value(c);
>>      rbd_aio_release(c);
>>
>> -    replay_bh_schedule_oneshot_event(bdrv_get_aio_context(acb->common.bs),
>> -                                     rbd_finish_bh, rcb);
>> +    replay_bh_schedule_oneshot_event(acb->s->aio_context, rbd_finish_bh, rcb);
>>  }
>>
>>  static BlockAIOCB *rbd_start_aio(BlockDriverState *bs,
>> @@ -1151,6 +1153,18 @@ static const char *const qemu_rbd_strong_runtime_opts[] = {
>>      NULL
>>  };
>>
>> +static void qemu_rbd_attach_aio_context(BlockDriverState *bs,
>> +                                       AioContext *new_context)
>> +{
>> +    BDRVRBDState *s = bs->opaque;
>> +    s->aio_context = new_context;
>> +}
>> +
>> +static void qemu_rbd_detach_aio_context(BlockDriverState *bs)
>> +{
> I don't know enough about the internals of QEMU, but this seems
> suspicious to be a no-op.


You are right, I was believing attach and detach aio_context functions always needs to be implemented both at the same time.

Normally this is the point where internal timers will be deleted or polling an fd will be stopped.

We can leave it completely out or set s->aio_context = NULL if we don't want to omit it.


Peter





  reply	other threads:[~2021-01-14 19:53 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-27 16:42 [PATCH 0/7] block/rbd: migrate to coroutines and add write zeroes support Peter Lieven
2020-12-27 16:42 ` [PATCH 1/7] block/rbd: bump librbd requirement to luminous release Peter Lieven
2020-12-27 16:42 ` [PATCH 2/7] block/rbd: store object_size in BDRVRBDState Peter Lieven
2020-12-27 16:42 ` [PATCH 3/7] block/rbd: use stored image_size in qemu_rbd_getlength Peter Lieven
2021-01-14 19:18   ` Jason Dillaman
2021-01-14 19:32     ` Peter Lieven
2020-12-27 16:42 ` [PATCH 4/7] block/rbd: add bdrv_{attach,detach}_aio_context Peter Lieven
2021-01-14 19:18   ` Jason Dillaman
2021-01-14 19:49     ` Peter Lieven [this message]
2020-12-27 16:42 ` [PATCH 5/7] block/rbd: migrate from aio to coroutines Peter Lieven
2021-01-14 19:19   ` Jason Dillaman
2021-01-14 19:39     ` Peter Lieven
2020-12-27 16:42 ` [PATCH 6/7] block/rbd: add write zeroes support Peter Lieven
2021-01-14 19:19   ` Jason Dillaman
2021-01-14 19:41     ` Peter Lieven
2021-01-15 15:09       ` Jason Dillaman
2020-12-27 16:42 ` [PATCH 7/7] block/rbd: change request alignment to 1 byte Peter Lieven
2021-01-14 19:19   ` Jason Dillaman
2021-01-14 19:59     ` Peter Lieven
2021-01-15 15:27       ` Jason Dillaman
2021-01-15 15:39         ` Peter Lieven
2021-01-18 22:33           ` Jason Dillaman
2021-01-19  9:36             ` Peter Lieven
2021-01-19 14:20               ` Jason Dillaman

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=a4874e73-7f6c-53f2-23c8-ec76b055ec57@kamp.de \
    --to=pl@kamp.de \
    --cc=ct@flyingcircus.io \
    --cc=dillaman@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.