From: Alberto Faria <afaria@redhat.com>
To: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: fio@vger.kernel.org, Kevin Wolf <kwolf@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Stefano Garzarella <sgarzare@redhat.com>
Subject: Re: [PATCH 01/10] Add a libblkio engine
Date: Thu, 1 Dec 2022 22:10:19 +0000 [thread overview]
Message-ID: <CAELaAXzwM48bFiCoS9kgoCx3Mw5T_XvXmQ-+Y3AanxKjPizoWA@mail.gmail.com> (raw)
In-Reply-To: <1cf55b08-ed07-4f3a-6155-0fb0027555ff@opensource.wdc.com>
On Tue, Nov 22, 2022 at 9:17 AM Damien Le Moal
<damien.lemoal@opensource.wdc.com> wrote:
> On 11/22/22 03:28, Alberto Faria wrote:
> > The libblkio library provides a unified API for efficiently accessing
> > block devices using modern high-performance block I/O interfaces like
> > io_uring and vhost-user-blk. Using libblkio reduces the amount of code
> > needed for interfacing with storage devices and allows developers to
> > focus on their applcations.
> >
> > Add a libblkio engine that uses libblkio to perform I/O. This is useful
> > to benchmark the library itself, and also adds support for storage
> > interfaces and devices otherwise not supported by fio, such as
> > virtio-blk PCI, vhost-user, and vhost-vDPA devices.
> >
> > See the libblkio documentation [2] or KVM Forum 2022 [3] presentation
> > for more information on the library itself.
> >
> > [1] https://gitlab.com/libblkio/libblkio
> > [2] https://libblkio.gitlab.io/libblkio/index.html
> > [3] https://static.sched.com/hosted_files/kvmforum2022/8c/libblkio-kvm-forum-2022.pdf
> >
> > Signed-off-by: Alberto Faria <afaria@redhat.com>
> > ---
> > HOWTO.rst | 26 ++
> > Makefile | 6 +
> > configure | 25 ++
> > engines/libblkio.c | 463 ++++++++++++++++++++++
> > examples/libblkio-io_uring.fio | 19 +
> > examples/libblkio-virtio-blk-vfio-pci.fio | 18 +
> > fio.1 | 19 +
> > optgroup.h | 2 +
> > 8 files changed, 578 insertions(+)
> > create mode 100644 engines/libblkio.c
> > create mode 100644 examples/libblkio-io_uring.fio
> > create mode 100644 examples/libblkio-virtio-blk-vfio-pci.fio
> >
> > diff --git a/HOWTO.rst b/HOWTO.rst
> > index e796f961..d5a2749c 100644
> > --- a/HOWTO.rst
> > +++ b/HOWTO.rst
> > @@ -2192,6 +2192,12 @@ I/O engine
> > the SPDK NVMe driver, or your own custom NVMe driver. The xnvme engine includes
> > engine specific options. (See https://xnvme.io).
> >
> > + **libblkio**
> > + Use the libblkio library
> > + (https://gitlab.com/libblkio/libblkio). The specific
> > + *driver* to use must be set using
> > + :option:`libblkio_driver`.
> > +
> > I/O engine specific parameters
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > @@ -2842,6 +2848,26 @@ with the caveat that when used on the command line, they must come after the
> >
> > If this option is set. xnvme will use vectored read/write commands.
> >
> > +.. option:: libblkio_driver=str : [libblkio]
> > +
> > + The driver to be used by libblkio (e.g. **virtio-blk-vfio-pci**).
>
> It would be nice to list the possible values and their meaning here.
>
> > +
> > +.. option:: libblkio_pre_connect_props=str : [libblkio]
> > +
> > + A colon-separated list of libblkio properties to be set after creating
> > + but before connecting the ``struct blkio``. Each property must have the
> > + format ``<name>=<value>``. Colons can be escaped as ``\:``. These are
> > + set after the engine sets any other properties, so those can be
> > + overriden.
>
> "struct blkio" has no meaning whatsoever for the fio command line
> interface. So could this be reworded without using struct names ? E.g.
> "without connecting the device accessed by libblkio" ?
>
> And we need to list the possible properties or have at least a link to
> some documentation listing the possible properties. Otherwise, how can
> the user find that out ?
In v2 I ended up linking to the libblkio docs. I avoided adding lists
of available drivers and properties since those would become
incomplete rather quickly and also depend on the installed version of
libblkio.
Thanks,
Alberto
next prev parent reply other threads:[~2022-12-01 22:12 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 18:28 [PATCH 00/10] Add a libblkio engine Alberto Faria
2022-11-21 18:28 ` [PATCH 01/10] " Alberto Faria
2022-11-22 9:17 ` Damien Le Moal
2022-12-01 22:10 ` Alberto Faria [this message]
2022-11-21 18:28 ` [PATCH 02/10] Add engine flag FIO_SKIPPABLE_IOMEM_ALLOC Alberto Faria
2022-11-21 18:28 ` [PATCH 03/10] engines/libblkio: Allow setting option mem/iomem Alberto Faria
2022-11-21 18:28 ` [PATCH 04/10] engines/libblkio: Add support for poll queues Alberto Faria
2022-12-01 17:01 ` Vincent Fu
2022-11-21 18:28 ` [PATCH 05/10] engines/libblkio: Add option libblkio_vectored Alberto Faria
2022-12-01 17:11 ` Vincent Fu
2022-12-01 22:13 ` Alberto Faria
2022-11-21 18:28 ` [PATCH 06/10] engines/libblkio: Add option libblkio_write_zeroes_on_trim Alberto Faria
2022-12-01 17:13 ` Vincent Fu
2022-11-21 18:28 ` [PATCH 07/10] engines/libblkio: Add option libblkio_wait_mode Alberto Faria
2022-12-01 17:21 ` Vincent Fu
2022-11-21 18:29 ` [PATCH 08/10] engines/libblkio: Add option libblkio_force_enable_completion_eventfd Alberto Faria
2022-12-01 17:23 ` Vincent Fu
2022-11-21 18:29 ` [PATCH 09/10] engines/libblkio: Add options for some driver-specific properties Alberto Faria
2022-11-21 18:29 ` [PATCH 10/10] engines/libblkio: Share a single blkio instance among threads in same process Alberto Faria
2022-12-01 17:29 ` Vincent Fu
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=CAELaAXzwM48bFiCoS9kgoCx3Mw5T_XvXmQ-+Y3AanxKjPizoWA@mail.gmail.com \
--to=afaria@redhat.com \
--cc=damien.lemoal@opensource.wdc.com \
--cc=fio@vger.kernel.org \
--cc=kwolf@redhat.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).