Re: [PATCH v2 00/10] Add a libblkio engine

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

 



On 12/1/22 17:07, 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

v2:
- In the HOWTO and manpage, point users to the libblkio docs to know
   what drivers and properties are available.
- Avoid mentioning libblkio API symbols in the HOWTO and manpage.
- Don't document FIO_OPT_STR_SET options as having type bool in the
   HOWTO and manpage.
- Prevent null deref in fio_blkio_init() error path.
- Fix total_threaded_subjobs() to only count jobs using the libblkio
   engine.
- Force `td->o.disable_slat = 1`, as request enqueueing is fast and it
   is not possible to know exactly when a request is submitted.
- Have all type declarations near the top of the file.
- Be more economical with blank lines.

Alberto Faria (10):
   Add a libblkio engine
   Add engine flag FIO_SKIPPABLE_IOMEM_ALLOC
   engines/libblkio: Allow setting option mem/iomem
   engines/libblkio: Add support for poll queues
   engines/libblkio: Add option libblkio_vectored
   engines/libblkio: Add option libblkio_write_zeroes_on_trim
   engines/libblkio: Add option libblkio_wait_mode
   engines/libblkio: Add option libblkio_force_enable_completion_eventfd
   engines/libblkio: Add options for some driver-specific properties
   engines/libblkio: Share a single blkio instance among threads in same
     process

  HOWTO.rst                                 |  95 +++
  Makefile                                  |   6 +
  configure                                 |  25 +
  engines/libblkio.c                        | 914 ++++++++++++++++++++++
  examples/libblkio-io_uring.fio            |  29 +
  examples/libblkio-virtio-blk-vfio-pci.fio |  29 +
  fio.1                                     |  78 ++
  ioengines.h                               |   2 +
  memory.c                                  |  22 +-
  optgroup.h                                |   2 +
  10 files changed, 1192 insertions(+), 10 deletions(-)
  create mode 100644 engines/libblkio.c
  create mode 100644 examples/libblkio-io_uring.fio
  create mode 100644 examples/libblkio-virtio-blk-vfio-pci.fio



Applied. Thanks.



[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