From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964870AbaH0RTr (ORCPT ); Wed, 27 Aug 2014 13:19:47 -0400 Received: from relay.parallels.com ([195.214.232.42]:52826 "EHLO relay.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964849AbaH0RTp (ORCPT ); Wed, 27 Aug 2014 13:19:45 -0400 Message-ID: <53FE1328.2040607@parallels.com> Date: Wed, 27 Aug 2014 21:19:36 +0400 From: Maxim Patlasov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Benjamin LaHaise CC: Ming Lei , Jens Axboe , "Christoph Hellwig" , Linux Kernel Mailing List , Andrew Morton , Dave Kleikamp , Zach Brown , "Kent Overstreet" , open list: AIO , "Linux FS Devel" , Dave Chinner , ; Illegal-Object: Syntax error in CC: address found on vger.kernel.org: CC: ; ^-missing semicolon to end mail group, extraneous tokens in mailbox, missing end of mailbox Subject: Re: [PATCH v1 5/9] block: loop: convert to blk-mq References: <20140815163111.GA16652@infradead.org> <53EE370D.1060106@kernel.dk> <53EE3966.60609@kernel.dk> <53F0EAEC.9040505@kernel.dk> <53F3B89D.6070703@kernel.dk> <53FE029B.1030200@parallels.com> <20140827162955.GF4827@kvack.org> In-Reply-To: <20140827162955.GF4827@kvack.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.30.22.200] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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