On Tue, Feb 8, 2022 at 2:12 PM Niklas Cassel <Niklas.Cassel@xxxxxxx> wrote: > Original commit disallowed offload for all async ioengines: > https://git.kernel.dk/cgit/fio/commit/?id=abfd235a05330eae8444f0e4c0039bbdf9f160a3 > > Later it was changed to be disallowed only for io_uring: > https://git.kernel.dk/cgit/fio/commit/?id=8bfe330eb42739d503d35d0b7d96f98c5c544204 > > So I assume that offload works fine with libaio. > > Perhaps the HOWTO, man page, and the comment in check_engine_ops() > should simply be updated? > > > Kind regards, > Niklas Ah, thank you very much for finding and sharing those. That is very helpful. If Jens or Jeff Furlong has any memories of some of the cases with io_uring that are problematic, it would be great to know - I could include mention of them while updating the howto/man/comment Niklas mentioned. At a higher level, would it be considered "unusual" or "non-standard" to use offload with libaio (or really any async engine)? I guess in some sense it is, because when your using offload, you've got a pool of iodepth threads/workers running to perform the io, so using libaio is not going to help those workers, but will really just be adding another layer of async overhead after the async interface already provided by the offload pool. Further, a real world app that is using a threadpool to handle its IO is probably not using libaio as well. Does that line of thinking (async engine with offload option is unusual) make sense? Thanks, Nick