Message ID | 20210702090935.15300-1-pl@kamp.de (mailing list archive) |
---|---|
Headers | show |
Series | block/rbd: migrate to coroutines and add write zeroes support | expand |
On Fri, Jul 2, 2021 at 11:09 AM Peter Lieven <pl@kamp.de> wrote: > > this series migrates the qemu rbd driver from the old aio emulation > to native coroutines and adds write zeroes support which is important > for block operations. > > To achive this we first bump the librbd requirement to the already > outdated luminous release of ceph to get rid of some wrappers and > ifdef'ry in the code. > > V4->V4: > - this patch is now rebased on top of current master > - Patch 1: just mention librbd, tweak version numbers [Ilya] > - Patch 3: use rbd_get_size instead of rbd_stat [Ilya] > - Patch 4: retain comment about using a BH in the callback [Ilya] > - Patch 5: set BDRV_REQ_NO_FALLBACK and silently ignore BDRV_REQ_MAY_UNMAP [Ilya] > > V2->V3: > - this patch is now rebased on top of current master > - Patch 1: only use cc.links and not cc.run to not break > cross-compiling. [Kevin] > Since Qemu 6.1 its okay to rely on librbd >= 12.x since RHEL-7 > support was dropped [Daniel] > - Patch 4: dropped > - Patch 5: store BDS in RBDTask and use bdrv_get_aio_context() [Kevin] > > V1->V2: > - this patch is now rebased on top of current master with Paolos > upcoming fixes for the meson.build script included: > - meson: accept either shared or static libraries if --disable-static > - meson: honor --enable-rbd if cc.links test fails > - Patch 1: adjusted to meson.build script > - Patch 2: unchanged > - Patch 3: new patch > - Patch 4: do not implement empty detach_aio_context callback [Jason] > - Patch 5: - fix aio completion cleanup in error case [Jason] > - return error codes from librbd > - Patch 6: - add support for thick provisioning [Jason] > - do not set write zeroes alignment > - Patch 7: new patch > > Peter Lieven (6): > block/rbd: bump librbd requirement to luminous release > block/rbd: store object_size in BDRVRBDState > block/rbd: update s->image_size in qemu_rbd_getlength > block/rbd: migrate from aio to coroutines > block/rbd: add write zeroes support > block/rbd: drop qemu_rbd_refresh_limits > > block/rbd.c | 406 ++++++++++++++++------------------------------------ > meson.build | 7 +- > 2 files changed, 128 insertions(+), 285 deletions(-) > > -- > 2.17.1 > > Looks good to me! Kevin picked up Or's encryption patch, so there are a few simple conflicts with https://repo.or.cz/qemu/kevin.git block now. Do you want to rebase on top of Kevin's block branch and repost with "Based-on: <20210627114635.39326-1-oro@il.ibm.com>" or some such in the cover letter or should I? Thanks, Ilya
> Am 02.07.2021 um 14:46 schrieb Ilya Dryomov <idryomov@gmail.com>: > > On Fri, Jul 2, 2021 at 11:09 AM Peter Lieven <pl@kamp.de> wrote: >> >> this series migrates the qemu rbd driver from the old aio emulation >> to native coroutines and adds write zeroes support which is important >> for block operations. >> >> To achive this we first bump the librbd requirement to the already >> outdated luminous release of ceph to get rid of some wrappers and >> ifdef'ry in the code. >> >> V4->V4: >> - this patch is now rebased on top of current master >> - Patch 1: just mention librbd, tweak version numbers [Ilya] >> - Patch 3: use rbd_get_size instead of rbd_stat [Ilya] >> - Patch 4: retain comment about using a BH in the callback [Ilya] >> - Patch 5: set BDRV_REQ_NO_FALLBACK and silently ignore BDRV_REQ_MAY_UNMAP [Ilya] >> >> V2->V3: >> - this patch is now rebased on top of current master >> - Patch 1: only use cc.links and not cc.run to not break >> cross-compiling. [Kevin] >> Since Qemu 6.1 its okay to rely on librbd >= 12.x since RHEL-7 >> support was dropped [Daniel] >> - Patch 4: dropped >> - Patch 5: store BDS in RBDTask and use bdrv_get_aio_context() [Kevin] >> >> V1->V2: >> - this patch is now rebased on top of current master with Paolos >> upcoming fixes for the meson.build script included: >> - meson: accept either shared or static libraries if --disable-static >> - meson: honor --enable-rbd if cc.links test fails >> - Patch 1: adjusted to meson.build script >> - Patch 2: unchanged >> - Patch 3: new patch >> - Patch 4: do not implement empty detach_aio_context callback [Jason] >> - Patch 5: - fix aio completion cleanup in error case [Jason] >> - return error codes from librbd >> - Patch 6: - add support for thick provisioning [Jason] >> - do not set write zeroes alignment >> - Patch 7: new patch >> >> Peter Lieven (6): >> block/rbd: bump librbd requirement to luminous release >> block/rbd: store object_size in BDRVRBDState >> block/rbd: update s->image_size in qemu_rbd_getlength >> block/rbd: migrate from aio to coroutines >> block/rbd: add write zeroes support >> block/rbd: drop qemu_rbd_refresh_limits >> >> block/rbd.c | 406 ++++++++++++++++------------------------------------ >> meson.build | 7 +- >> 2 files changed, 128 insertions(+), 285 deletions(-) >> >> -- >> 2.17.1 >> >> > > Looks good to me! > > Kevin picked up Or's encryption patch, so there are a few simple > conflicts with https://repo.or.cz/qemu/kevin.git block now. Do you > want to rebase on top of Kevin's block branch and repost with > "Based-on: <20210627114635.39326-1-oro@il.ibm.com>" or some such in > the cover letter or should I? > Please do, i am already ooo and off for vacation. I wasn’t aware of a conflict in Kevin’s git repo, sorry. Peter > Thanks, > > Ilya