Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp9676651imu; Wed, 5 Dec 2018 08:32:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/WdXZYWyqXIqhXK9HL5verhx4ioNJOHB5RzXXUDCE3uoEbhT4Kcg6oLlPQuZA8WcciLYk8h X-Received: by 2002:a17:902:f44:: with SMTP id 62mr25161239ply.38.1544027522879; Wed, 05 Dec 2018 08:32:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544027522; cv=none; d=google.com; s=arc-20160816; b=jw1/luVJg9u5beoQVurIzL4nAdtkOFFxKoz4aS8cJPY0HuyNbmx43m+RpqHca0lin2 9qUC/0C2m9jhS5F2vclJgk4a34JV+XmUwzBzQhDvAZ1pdXz/fQUlyQKYGwPkbw9N0AzS Jr+duhRvtJvafxpWiNWQS9L4VDc+FmmDiDZEXJGzos5L0m0FkxZwHDPEnYHVtdjThsvZ IVQQqrNWgT/RSi0GciZLth4+pId65UtdZfCWYs8HNgw+5odYpkSANG+ScMEAOZsiTIpQ tKED0ys59MmplFyNJ3dPUy/khCbo5Lok9nRI0hG/YCuOPX1d3lFnuHecctc+HrHjVfFB AcgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=UjMA8GYjBXGSFO0Tdq6v3UUBevPYreEUAopQcbtKsI4=; b=Qha+g9spDIag0qbvZesqNyaMATY4j1yw0h999H+Io7x4FvbHH0LP59Y4YXiebimUoY 1XITfNharoy7u0O/fGklE6S/frxp0yK1K+ErXHQjGPg8rk1jcY15ppXQ1vvUdc5xwnZs 3orSUrNltQVPmYuQivo+O3LfPcBogOGoFdCWgIjUDdOIyFvMCCrgOjKJAWN+suOwm83X Ps/PG3gg/K4N33bgyQBw6Pk/yFqCGI4kyb9kkGXu2gZIVjh5Jyo4bbuD/AS8QlLXcv5W DI9G3IZUc2r2GSTQ2PwDFHX39wrvjbYy9txf+wIvZLmKsCB74HN/zW3JaBkiukofZl9q Cf1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=PENoLAQD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o9si20564244pfe.63.2018.12.05.08.31.47; Wed, 05 Dec 2018 08:32:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=PENoLAQD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727908AbeLEQas (ORCPT + 99 others); Wed, 5 Dec 2018 11:30:48 -0500 Received: from mail-it1-f193.google.com ([209.85.166.193]:50261 "EHLO mail-it1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727745AbeLEQas (ORCPT ); Wed, 5 Dec 2018 11:30:48 -0500 Received: by mail-it1-f193.google.com with SMTP id z7so22272855iti.0 for ; Wed, 05 Dec 2018 08:30:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=UjMA8GYjBXGSFO0Tdq6v3UUBevPYreEUAopQcbtKsI4=; b=PENoLAQDHlvM4Yx8wdadc2ZGSu2llROpwQ411ayS38IvaD+lt8V/3EaHThCZrwXovi +LZSQofnxplkfSL82zgTLaHKMgu14ibfDzqubHyeZFQ1v4aExm9tFufL7APu4n7q/5z2 q07eJOrtF2qaf6cE2RiFAf3MTgJeP3RFAen/LbyyeapvNDpWXnG+zy681n9fXmE7daBg kGldPB1oR3YwOwLIe3hS9FBUaeBL/0LjyzWuhChig0zFX0NuiY9wpc7d71GMMSOOgpj3 f695ExeSBvTkiJJ+3RTyIbvT9853tmX/6Nk2r+1fK8cTofI6bQGforjagYkRBtrF3SF2 +ORA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=UjMA8GYjBXGSFO0Tdq6v3UUBevPYreEUAopQcbtKsI4=; b=IoK5JqpMUUTHVWiq9YKU0WfeJk71z7Z5j5/wdnd00kasGKXBbeqkm9a0y/59VvS6zR y2h6h0ijydtiP0yQ7G8RzGjy3OcVr4ymWJNAFlGpw9FuRTrmqo43OIdkAVTYPWfDLYMx G5torcbQfRxFGf15QVUdZvOh4ndac80uzpNCN2dOpHaPVFAUElpGzHpSZHMGv4jLQupx HTVtsuTY0AMitR0XeYPZQSSlhLQnjp7iMPdLv1H+5OxPZiGY30RdT6p1Emgtle4rKoWj 1Sg1cMbTJV/ie6SgCy5YGpd2AS7920OXwwv3ZJBcbYAUWwSV6+iE5YIMkVObmsTraxmy /ZKw== X-Gm-Message-State: AA+aEWZDCUbTRM6FZHc4NKzlWv/IX6ImLK9rYsjvcVrrZHI1YeLXzLFV LpnBMzQyXkqpYHfmdFAPV5I5MJuTPjQ= X-Received: by 2002:a02:88cf:: with SMTP id b15mr23391906jak.10.1544027447020; Wed, 05 Dec 2018 08:30:47 -0800 (PST) Received: from [192.168.1.56] ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id y8sm7219380ita.5.2018.12.05.08.30.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Dec 2018 08:30:46 -0800 (PST) Subject: Re: [PATCH V9 3/4] blk-mq: issue directly with bypass 'false' in blk_mq_sched_insert_requests To: Jianchao Wang Cc: ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org References: <1543995842-20704-1-git-send-email-jianchao.w.wang@oracle.com> <1543995842-20704-4-git-send-email-jianchao.w.wang@oracle.com> From: Jens Axboe Message-ID: <6cb12913-3575-d3aa-ff08-f89bcb38b3d6@kernel.dk> Date: Wed, 5 Dec 2018 09:30:44 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <1543995842-20704-4-git-send-email-jianchao.w.wang@oracle.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/5/18 12:44 AM, Jianchao Wang wrote: > diff --git a/block/blk-mq.c b/block/blk-mq.c > index fe92e52..0dfa269 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -1899,32 +1899,23 @@ blk_status_t blk_mq_request_issue_directly(struct request *rq, bool last) > void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, > struct list_head *list) > { > + blk_qc_t cookie = BLK_QC_T_INVALID; > + I'm fine with adding this, but I think we need some sort of check for that not being a valid cookie. That isn't new, we really should have already. > while (!list_empty(list)) { > - blk_status_t ret; > struct request *rq = list_first_entry(list, struct request, > queuelist); > > - if (!blk_rq_can_direct_dispatch(rq)) > - break; > - > list_del_init(&rq->queuelist); > - ret = blk_mq_request_issue_directly(rq, list_empty(list)); > - if (ret != BLK_STS_OK) { > - if (ret == BLK_STS_RESOURCE || > - ret == BLK_STS_DEV_RESOURCE) { > - list_add(&rq->queuelist, list); > - break; > - } > - blk_mq_end_request(rq, ret); > - } > + blk_mq_try_issue_directly(hctx, rq, &cookie, false, > + list_empty(list)); Indent the list_empty() one more tab, should be after the ( if possible. > - * If we didn't flush the entire list, we could have told > - * the driver there was more coming, but that turned out to > - * be a lie. > + * cookie is set to a valid value only when reqeust is issued successfully. > + * We only need to care about the last request's result, if it is inserted, > + * kick the hardware with commit_rqs hook. reqeust -> request Also lines are too long, limit to 80 chars please. And why aren't we just using the list_empty() check like before, and not having to add the inval cookie value? > - if (!list_empty(list) && hctx->queue->mq_ops->commit_rqs) > + if ((cookie == BLK_QC_T_INVALID) && hctx->queue->mq_ops->commit_rqs) > hctx->queue->mq_ops->commit_rqs(hctx); Redundant parens around the cookie check. -- Jens Axboe