[PATCH 0/7] fio: atomic write support

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

 



This series re-introduces atomic write support.

Some time ago support was added for O_ATOMIC in fio, but O_ATOMIC support
never made it into the linux kernel, so fio support was dropped. However
some plumbing was left behind; specifically, we can still pass command
line arg --atomic=1, which sets thread option oatomic, but that is just
ignored.

Linux v6.11-rc added initial atomic write support through RWF_ATOMIC flag.
See latest man pages for details of RWF_ATOMIC:
https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/

This series uses the "atomic" command line option to set RWF_ATOMIC
on a per IO.

Support is added for libaio, pvsync2, and io_uring ioengines.

Since RWF_ATOMIC is only relevant to those ioengines mentioned, trying to
set --atomic=1 for other ioengines now errors.

The verify feature can be useful to prove atomic writes. However, atomic
writes only ensure a proper CRC, but not sequence number. So sequence
numbers are ignored in verify mode for atomic writes.

This series is marked as an RFC because:
- If ok to use pre-existing plumbing, I am not sure whether setting
  --atomic=1 for unsupported ioengines should error
- Whether verify mode should ignore sequence number always or we should
  add a new option for that.

John Garry (7):
  os-linux: Renumber RWF_UNCACHED
  os-linux: Define RWF_ATOMIC
  os: Reintroduce atomic write support
  verify: Ignore sequence number errors for atomic writes
  pvsync2: Support RWF_ATOMIC
  libaio: Support RWF_ATOMIC
  io_uring: Support RWF_ATOMIC

 engines/io_uring.c |  5 ++++-
 engines/libaio.c   |  7 ++++++-
 engines/sync.c     |  9 ++++++---
 init.c             | 20 +++++++++++++++++---
 ioengines.h        |  2 ++
 options.c          |  2 ++
 os/os-linux.h      |  7 ++++++-
 verify.c           |  2 +-
 8 files changed, 44 insertions(+), 10 deletions(-)

-- 
2.31.1





[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