[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: |
Peter Lieven |
Subject: |
Re: [PATCH v5 0/6] block/rbd: migrate to coroutines and add write zeroes support |
Date: |
Thu, 16 Sep 2021 14:34:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
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);
}
Peter
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v5 0/6] block/rbd: migrate to coroutines and add write zeroes support,
Peter Lieven <=