Re: [PATCH 01/10] Add a libblkio engine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 22, 2022 at 9:17 AM Damien Le Moal
<damien.lemoal@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxx>
> > ---
> >  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




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux