On Thu, Jan 14, 2021 at 2:59 PM Peter Lieven <p...@kamp.de> wrote: > > Am 14.01.21 um 20:19 schrieb Jason Dillaman: > > On Sun, Dec 27, 2020 at 11:42 AM Peter Lieven <p...@kamp.de> wrote: > >> since we implement byte interfaces and librbd supports aio on byte > >> granularity we can lift > >> the 512 byte alignment. > >> > >> Signed-off-by: Peter Lieven <p...@kamp.de> > >> --- > >> block/rbd.c | 2 -- > >> 1 file changed, 2 deletions(-) > >> > >> diff --git a/block/rbd.c b/block/rbd.c > >> index 27b4404adf..8673e8f553 100644 > >> --- a/block/rbd.c > >> +++ b/block/rbd.c > >> @@ -223,8 +223,6 @@ done: > >> static void qemu_rbd_refresh_limits(BlockDriverState *bs, Error **errp) > >> { > >> BDRVRBDState *s = bs->opaque; > >> - /* XXX Does RBD support AIO on less than 512-byte alignment? */ > >> - bs->bl.request_alignment = 512; > > Just a suggestion, but perhaps improve discard alignment, max discard, > > optimal alignment (if that's something QEMU handles internally) if not > > overridden by the user. > > > Qemu supports max_discard and discard_alignment. Is there a call to get these > limits > > from librbd? > > > What do you mean by optimal_alignment? The object size?
krbd does a good job of initializing defaults [1] where optimal and discard alignment is 64KiB (can actually be 4KiB now), max IO size for writes, discards, and write-zeroes is the object size * the stripe count. > Peter > > > [1] https://github.com/torvalds/linux/blob/master/drivers/block/rbd.c#L4981 -- Jason