On 10/10/20 3:39 AM, Hao_Xu wrote: > Hi Jens, > I've done some testing for io_uring async buffered reads with fio. But I > found something strange to me. > - when readahead is exactly turned off, the async buffered reads feature > appears to be worse than the io-wq method in terms of IOPS. > - when readahead is on, async buffered reads works better but the > optimization rate seems to be related with the size of readahead. > I'm wondering why. I don't think these are necessarily unexpected. By and large, the async buffered reads are faster, have lower latencies, and are a lot more efficient in terms of CPU usage. But there are cases where the old thread offload will be quicker, as you're essentially spreading the copying over more cores and can get higher bandwidth that way. If you're utilizing a single ring for your application, then there might be gains to be had at the higher end of the IOPS or bandwidth spectrum by selectively using IOSQE_ASYNC for a (small) subset of the issued reads. -- Jens Axboe