Dear All, I'm working on using hardware to accelerate the OS stack of NVMe SSD. By now, we provided these APIs to userspace: read_async(); // there is a pre-allocated memory request buffer in DRAM, if request buffer is not full, push request to buffer then return. If buffer is full, send all request in buffer batch to the accelerator, waiting for (polling) all request to be completed, and return. write_async();// same as read_async() poll();// if there are some requests left in the request buffer, finish processing them. I feel like this is very similar to asynchronous I/O with libaio in Linux, so we take this as the baseline. But I'm not sure in my use case, for a fair comparison, how to set iodepth options: iodepth_batch_submit iodepth_batch_complete_min iodepth_batch_complete_max iodepth_low Right now, I'm using: fio --iodepth_batch_submit=0 --ioengine=libaio --direct=1 --buffered=0 sequential_write.fio Any suggestions about other option settings? Thank you. Yu