Messages in this thread | | | Date | Wed, 27 Aug 2014 21:19:36 +0400 | From | Maxim Patlasov <> | Subject | Re: [PATCH v1 5/9] block: loop: convert to blk-mq |
| |
On 08/27/2014 08:29 PM, Benjamin LaHaise wrote: > On Wed, Aug 27, 2014 at 08:08:59PM +0400, Maxim Patlasov wrote: > ... >> 1) /dev/loop0 of 3.17.0-rc1 with Ming's patches applied -- 11K iops >> 2) the same as above, but call loop_queue_work() directly from >> loop_queue_rq() -- 270K iops >> 3) /dev/nullb0 of 3.17.0-rc1 -- 380K iops >> >> Taking into account so big difference (11K vs. 270K), would it be worthy >> to implement pure non-blocking version of aio_kernel_submit() returning >> error if blocking needed? Then loop driver (or any other in-kernel user) >> might firstly try that non-blocking submit as fast-path, and, only if >> it's failed, fall back to queueing. > What filesystem is the backing file for loop0 on? O_DIRECT access as > Ming's patches use should be non-blocking, and if not, that's something > to fix.
I used loop0 directly on top of null_blk driver (because my goal was to measure the overhead of processing requests in a separate thread).
In case of real-life filesystems, e.g. ext4, aio_kernel_submit() may easily block on something like bh_submit_read(), when fs reads file metadata to calculate the offset on block device by position in the file.
Thanks, Maxim
| |