From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB747C433E6 for ; Thu, 28 Jan 2021 11:52:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5401764D9F for ; Thu, 28 Jan 2021 11:52:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229908AbhA1Lw6 (ORCPT ); Thu, 28 Jan 2021 06:52:58 -0500 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]:54176 "EHLO out30-133.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229618AbhA1Lwx (ORCPT ); Thu, 28 Jan 2021 06:52:53 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R361e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04420;MF=jefflexu@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0UN8Gkqz_1611834725; Received: from admindeMacBook-Pro-2.local(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0UN8Gkqz_1611834725) by smtp.aliyun-inc.com(127.0.0.1); Thu, 28 Jan 2021 19:52:05 +0800 Subject: Re: [PATCH v2 3/6] block: add iopoll method to support bio-based IO polling To: Christoph Hellwig Cc: snitzer@redhat.com, joseph.qi@linux.alibaba.com, dm-devel@redhat.com, linux-block@vger.kernel.org, io-uring@vger.kernel.org References: <20210125121340.70459-1-jefflexu@linux.alibaba.com> <20210125121340.70459-4-jefflexu@linux.alibaba.com> <20210128084016.GA1951639@infradead.org> From: JeffleXu Message-ID: <7d5402f2-c4d7-9d9a-e637-54a2dd349b3f@linux.alibaba.com> Date: Thu, 28 Jan 2021 19:52:05 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <20210128084016.GA1951639@infradead.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org On 1/28/21 4:40 PM, Christoph Hellwig wrote: > On Mon, Jan 25, 2021 at 08:13:37PM +0800, Jeffle Xu wrote: >> +int blk_poll(struct request_queue *q, blk_qc_t cookie, bool spin) > > Can you split the guts of this function into two separate helpers > for the mq vs non-mq case? As is is is a little hard to read and > introduced extra branches in the fast path. > I know your consideration, actually I had ever tried. I can extract some helper functions, but I'm doubted if the extra function call is acceptable. Besides, the iteration logic is generic and I'm afraid the branch or function call is unavoidable. Or if we maintain two separate function for mq and dm, the code duplication may be unavoidable. Anyway I'll give a try. -- Thanks, Jeffle From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8507C433DB for ; Fri, 29 Jan 2021 09:38:18 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2E20B64DE2 for ; Fri, 29 Jan 2021 09:38:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2E20B64DE2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=dm-devel-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-509-pQkUBpZbMqayFqCq5Sz-rQ-1; Fri, 29 Jan 2021 04:38:14 -0500 X-MC-Unique: pQkUBpZbMqayFqCq5Sz-rQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2439D1005504; Fri, 29 Jan 2021 09:38:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 02D0E709A5; Fri, 29 Jan 2021 09:38:10 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C2AFB1809CA0; Fri, 29 Jan 2021 09:38:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 10SBqINm004564 for ; Thu, 28 Jan 2021 06:52:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id D8F97101F0AD; Thu, 28 Jan 2021 11:52:18 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D4FCA1020445 for ; Thu, 28 Jan 2021 11:52:16 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 60CFF811E84 for ; Thu, 28 Jan 2021 11:52:16 +0000 (UTC) Received: from out30-43.freemail.mail.aliyun.com (out30-43.freemail.mail.aliyun.com [115.124.30.43]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-107-DlNvTvtFOqaGB40yBQYPAw-1; Thu, 28 Jan 2021 06:52:10 -0500 X-MC-Unique: DlNvTvtFOqaGB40yBQYPAw-1 X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R361e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=e01e04420; MF=jefflexu@linux.alibaba.com; NM=1; PH=DS; RN=6; SR=0; TI=SMTPD_---0UN8Gkqz_1611834725 Received: from admindeMacBook-Pro-2.local(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0UN8Gkqz_1611834725) by smtp.aliyun-inc.com(127.0.0.1); Thu, 28 Jan 2021 19:52:05 +0800 To: Christoph Hellwig References: <20210125121340.70459-1-jefflexu@linux.alibaba.com> <20210125121340.70459-4-jefflexu@linux.alibaba.com> <20210128084016.GA1951639@infradead.org> From: JeffleXu Message-ID: <7d5402f2-c4d7-9d9a-e637-54a2dd349b3f@linux.alibaba.com> Date: Thu, 28 Jan 2021 19:52:05 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <20210128084016.GA1951639@infradead.org> X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: dm-devel@redhat.com X-Mailman-Approved-At: Fri, 29 Jan 2021 04:33:26 -0500 Cc: linux-block@vger.kernel.org, joseph.qi@linux.alibaba.com, dm-devel@redhat.com, io-uring@vger.kernel.org, snitzer@redhat.com Subject: Re: [dm-devel] [PATCH v2 3/6] block: add iopoll method to support bio-based IO polling X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dm-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On 1/28/21 4:40 PM, Christoph Hellwig wrote: > On Mon, Jan 25, 2021 at 08:13:37PM +0800, Jeffle Xu wrote: >> +int blk_poll(struct request_queue *q, blk_qc_t cookie, bool spin) > > Can you split the guts of this function into two separate helpers > for the mq vs non-mq case? As is is is a little hard to read and > introduced extra branches in the fast path. > I know your consideration, actually I had ever tried. I can extract some helper functions, but I'm doubted if the extra function call is acceptable. Besides, the iteration logic is generic and I'm afraid the branch or function call is unavoidable. Or if we maintain two separate function for mq and dm, the code duplication may be unavoidable. Anyway I'll give a try. -- Thanks, Jeffle -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel