All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] fio: atomic write support
@ 2024-08-29 12:31 John Garry
  2024-08-29 12:31 ` [PATCH 1/7] os-linux: Renumber RWF_UNCACHED John Garry
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: John Garry @ 2024-08-29 12:31 UTC (permalink / raw)
  To: fio, axboe; +Cc: martin.petersen, djwong, mcgrof, John Garry

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2024-09-10 17:17 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-29 12:31 [PATCH 0/7] fio: atomic write support John Garry
2024-08-29 12:31 ` [PATCH 1/7] os-linux: Renumber RWF_UNCACHED John Garry
2024-08-29 13:16   ` Jens Axboe
2024-08-29 12:31 ` [PATCH 2/7] os-linux: Define RWF_ATOMIC John Garry
2024-08-29 12:31 ` [PATCH 3/7] os: Reintroduce atomic write support John Garry
2024-08-29 12:31 ` [PATCH 4/7] verify: Ignore sequence number errors for atomic writes John Garry
2024-08-29 12:31 ` [PATCH 5/7] pvsync2: Support RWF_ATOMIC John Garry
2024-08-29 12:31 ` [PATCH 6/7] libaio: " John Garry
2024-08-29 12:31 ` [PATCH 7/7] io_uring: " John Garry
2024-09-05  9:37 ` [PATCH 0/7] fio: atomic write support Luis Chamberlain
2024-09-06 15:22   ` John Garry
2024-09-06 23:29     ` Luis Chamberlain
2024-09-09  8:12       ` John Garry
2024-09-09 19:48         ` Jens Axboe
2024-09-09 20:20           ` John Garry
2024-09-09 21:03           ` Luis Chamberlain
2024-09-09 19:53 ` Jens Axboe
2024-09-09 20:28   ` John Garry
2024-09-10  1:01     ` Jens Axboe
2024-09-10 10:03       ` John Garry
2024-09-10 15:56         ` Jens Axboe
2024-09-10 16:38           ` John Garry
2024-09-10 16:56             ` Jens Axboe
2024-09-10 17:17               ` John Garry

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.