All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Dillaman <jdillama@redhat.com>
To: Peter Lieven <pl@kamp.de>
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 7/7] block/rbd: change request alignment to 1 byte
Date: Mon, 18 Jan 2021 17:33:28 -0500	[thread overview]
Message-ID: <CA+aFP1DMTdxvi=C2=8hXYrWBf3nXqQ9ZjHPCEbsCo5biiRnQrA@mail.gmail.com> (raw)
In-Reply-To: <75992ffb-3b6e-c31a-a9a0-956daa7752e6@kamp.de>

On Fri, Jan 15, 2021 at 10:39 AM Peter Lieven <pl@kamp.de> wrote:
>
> Am 15.01.21 um 16:27 schrieb Jason Dillaman:
> > On Thu, Jan 14, 2021 at 2:59 PM Peter Lieven <pl@kamp.de> wrote:
> >> Am 14.01.21 um 20:19 schrieb Jason Dillaman:
> >>> On Sun, Dec 27, 2020 at 11:42 AM Peter Lieven <pl@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 <pl@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.
>
>
> Okay, I will have a look at it. If qemu issues a write, discard, write_zero greater than
>
> obj_size  * stripe count will librbd split it internally or will the request fail?

librbd will handle it as needed. My goal is really just to get the
hints down the guest OS.

> Regarding the alignment it seems that rbd_dev->opts->alloc_size is something that comes from the device
>
> configuration and not from rbd? I don't have that information inside the Qemu RBD driver.

librbd doesn't really have the information either. The 64KiB guess
that krbd uses was a compromise since that was the default OSD
allocation size for HDDs since Luminous. Starting with Pacific that
default is going down to 4KiB.

>
> Peter
>
>


-- 
Jason



  reply	other threads:[~2021-01-18 22:34 UTC|newest]

Thread overview: 28+ 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
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 [this message]
2021-01-19  9:36             ` Peter Lieven
2021-01-19 14:20               ` Jason Dillaman
2021-01-20 23:01 Peter Lieven
2021-01-21 19:42 ` Jason Dillaman
2021-01-21 20:29   ` Peter Lieven
2021-01-21 20:55     ` 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='CA+aFP1DMTdxvi=C2=8hXYrWBf3nXqQ9ZjHPCEbsCo5biiRnQrA@mail.gmail.com' \
    --to=jdillama@redhat.com \
    --cc=ct@flyingcircus.io \
    --cc=dillaman@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pl@kamp.de \
    --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.