This is indeed a difference between the ioq-based and block-based backends. ioq could submit more than one request with the same io_submit system call.

We can implement (advisory) calls like bdrv_plug/bdrv_unplug in order to restore the previous levels of performance.

Note that some fallout of the conversion was expected. Dataplane told us experimentally what level of performance could be reached, but was a dead end in terms of functionality. Now Stefan added a whole lot of functionality to dataplane (accounting, throttling, file formats and protocols, thread-pool based I/O, etc.) and we need to bring back any performance we lost in the process.

Out of curiosity, how does aio=threads (after the patch) fare in comparison to aio=native (before the patch)?

Paolo

Reply via email to