[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 0/6] block/rbd: migrate to coroutines and add write zeroes
From: |
Kevin Wolf |
Subject: |
Re: [PATCH v5 0/6] block/rbd: migrate to coroutines and add write zeroes support |
Date: |
Mon, 25 Oct 2021 14:58:25 +0200 |
Am 25.10.2021 um 13:39 hat Peter Lieven geschrieben:
> Am 16.09.21 um 14:34 schrieb Peter Lieven:
> > Am 09.07.21 um 12:21 schrieb Kevin Wolf:
> > > Am 08.07.2021 um 20:23 hat Peter Lieven geschrieben:
> > > > Am 08.07.2021 um 14:18 schrieb Kevin Wolf <kwolf@redhat.com>:
> > > > > Am 07.07.2021 um 20:13 hat Peter Lieven geschrieben:
> > > > > > > Am 06.07.2021 um 17:25 schrieb Kevin Wolf <kwolf@redhat.com>:
> > > > > > > Am 06.07.2021 um 16:55 hat Peter Lieven geschrieben:
> > > > > > > > I will have a decent look after my vacation.
> > > > > > > Sounds good, thanks. Enjoy your vacation!
> > > > > > As I had to fire up my laptop to look into another issue anyway, I
> > > > > > have sent two patches for updating MAINTAINERS and to fix the int
> > > > > > vs.
> > > > > > bool mix for task->complete.
> > > > > I think you need to reevaluate your definition of vacation. ;-)
> > > > Lets talk about this when the kids are grown up. Sometimes sending
> > > > patches can be quite relaxing :-)
> > > Heh, fair enough. :-)
> > >
> > > > > But thanks anyway.
> > > > >
> > > > > > As Paolos fix (5f50be9b5) is relatively new and there are maybe
> > > > > > other
> > > > > > non obvious problems when removing the BH indirection and we are
> > > > > > close
> > > > > > to soft freeze I would leave the BH removal change for 6.2.
> > > > > Sure, code cleanups aren't urgent.
> > > > Isn’t the indirection also a slight performance drop?
> > > Yeah, I guess technically it is, though I doubt it's measurable.
> >
> >
> > As promised I was trying to remove the indirection through the BH after
> > Qemu 6.1 release.
> >
> > However, if I remove the BH I run into the following assertion while
> > running some fio tests:
> >
> >
> > qemu-system-x86_64: ../block/block-backend.c:1197: blk_wait_while_drained:
> > Assertion `blk->in_flight > 0' failed.
> >
> >
> > Any idea?
> >
> >
> > This is what I changed:
> >
> >
> > diff --git a/block/rbd.c b/block/rbd.c
> > index 3cb24f9981..bc1dbc20f7 100644
> > --- a/block/rbd.c
> > +++ b/block/rbd.c
> > @@ -1063,13 +1063,6 @@ static int qemu_rbd_resize(BlockDriverState *bs,
> > uint64_t size)
> > return 0;
> > }
> >
> > -static void qemu_rbd_finish_bh(void *opaque)
> > -{
> > - RBDTask *task = opaque;
> > - task->complete = true;
> > - aio_co_wake(task->co);
> > -}
> > -
> > /*
> > * This is the completion callback function for all rbd aio calls
> > * started from qemu_rbd_start_co().
> > @@ -1083,8 +1076,8 @@ static void qemu_rbd_completion_cb(rbd_completion_t
> > c, RBDTask *task)
> > {
> > task->ret = rbd_aio_get_return_value(c);
> > rbd_aio_release(c);
> > - aio_bh_schedule_oneshot(bdrv_get_aio_context(task->bs),
> > - qemu_rbd_finish_bh, task);
> > + task->complete = true;
> > + aio_co_wake(task->co);
> > }
>
> Kevin, Paolo, any idea?
Not really, I don't see the connection between both places.
Do you have a stack trace for the crash?
Kevin