Storage glossary · JSON corpus · llms.txt · hesela.com

io-uring-drain · shipping · also IOSQE_IO_DRAIN

io_uring drain

io_uring drain is a submission flag that delays a request until earlier requests in the same ring finish and delays later requests until the drain request finishes.

Related Observatory article: io_uring drain on hesela.com

Drain orders completion within one ring; it is not a device-cache flush. [1] The documented API forbids mixing IO_DRAIN with IOSQE_CQE_SKIP_SUCCESS in one ring, including on separate requests. [2]

Relations

related
io-uring, io-uring-linked-requests, fsync, persistence-ordering

Advantages

Limitations

Citations

  1. liburing 2.9: io_uring_sqe_set_flags(3), chain and drain scope. (accessed 2026-10-14)
  2. liburing: io_uring_enter(2), IORING_OP_FSYNC, linking and CQE_SKIP_SUCCESS constraints. (accessed 2026-10-14)
  3. io_uring: completion is not a durable commit (accessed 2026-10-14)

JSON: /data/terms/io-uring-drain.json