Received: by 10.223.176.5 with SMTP id f5csp2021651wra; Sun, 4 Feb 2018 18:29:17 -0800 (PST) X-Google-Smtp-Source: AH8x224T9/cyG8qH+HGPqAMB/tMXEwotlXw75CMXZlcM5nZ+j1WWuBr2R3IULjoE2jvQ4vYOQnGS X-Received: by 10.101.92.77 with SMTP id v13mr2021751pgr.341.1517797757795; Sun, 04 Feb 2018 18:29:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517797757; cv=none; d=google.com; s=arc-20160816; b=MiZT2/Dbh0E7QFQPFqtdIHI+/HnI0b1VcTsn9AmrxmEz5K2NYbY41tgTJF3nzRocSA SVkIr4TtILkoZDnM0+VACv/zMtuIM4l9NrEr2rxAFwkXvrqE6/U6HSIlLYDKafgTx2S5 y53626R5Kj3zXGAMXtDVKMktXpbq6OGncR0XsLl2K3QK9+JHstEYPD5xfR0RRfZrrEev bgIR2AR6DNegmO46qkcEmESMrzCjanRAelMiN9vYvLDbw3wKzRJuEOn4EtpO5zfrQjEu gngtsY5Tnp1h0atcJLg67fzJt6nq4uxelFjkZs3Ckm8wocJnbHBJMM8pHdByZgFHJqWC 8tFw== 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 :arc-authentication-results; bh=ITk8gL8F1gAyLTbi2zXeE5WTUaO+/0IzLIgcGLVIqBQ=; b=UE+d8PZ1GZog9+jAAGbZgqCcsc7gDTtV2X+1HTWYO8WRAQn1S55QOCDc18YAmVBq57 5uDysHAI4ZLfXRvuYEWtBPSdryewDSKZbDqcr/jBfd8MLsvO7HVJYbz0CZoba88Ku9WD emwHroOCyyBgKXyyUEwoqn2Eezrq6L9q8lsZSW37GrH3Mp2RVw/QcPhOj3lS0dIA0jR2 TPZgfTT1GpRvHZG0grJy1BJw50ySRt6GHU0iQNHkDEiW+nwLKAUTvD56ohP74KkY3E6b ERxoCg36S8QkcEeIjuJIt3hsLi0lj7WbW/FfZL8wsTKNv0J+TV7J5MK51g5mfyyFJSTU AgLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=przaccBR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g129si2082117pfc.338.2018.02.04.18.29.03; Sun, 04 Feb 2018 18:29:17 -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=@oracle.com header.s=corp-2017-10-26 header.b=przaccBR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752374AbeBEC0a (ORCPT + 99 others); Sun, 4 Feb 2018 21:26:30 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:52380 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752166AbeBEC0X (ORCPT ); Sun, 4 Feb 2018 21:26:23 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w152MduL135144; Mon, 5 Feb 2018 02:25:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=ITk8gL8F1gAyLTbi2zXeE5WTUaO+/0IzLIgcGLVIqBQ=; b=przaccBRl4+O/gbmq76yTGgjxF287eBMNZEu/1eyf3vLQqkeIBOWJDRWswNPrR6rmCNW s/Ju05zFKzOuYjyPIceICsFqdEn6+Nl1u0rUzIrTRh/cifsoruB2+KVxtBxdTkzmFSLx 1/rqlUaQgveFpICD0u34FLm6kd/v2Gr0Qr5WzR19qHl4UnOceFPWIecm4F1ASRsuaNTL ipEBzzVq+xSqgKV1qgL5gSc6g0uJWYr1wB44OsFgg6lpBcj5RL3z547dqNW2tGp3nLTI P4WvM1zd2A3Eb1wR7DpubeokXCsj6RlfhxhTvK7SdSOiMsL6NEBPCSQiOakc7S/qQapX eA== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp2130.oracle.com with ESMTP id 2fxcg60782-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 05 Feb 2018 02:25:48 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w152Pkki001420 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 5 Feb 2018 02:25:47 GMT Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w152Pkk8001136; Mon, 5 Feb 2018 02:25:46 GMT Received: from [10.182.69.179] (/10.182.69.179) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 04 Feb 2018 18:25:46 -0800 Subject: Re: [PATCH 2/6] nvme-pci: fix the freeze and quiesce for shutdown and reset case To: Keith Busch Cc: axboe@fb.com, linux-kernel@vger.kernel.org, hch@lst.de, linux-nvme@lists.infradead.org, sagi@grimberg.me References: <1517554849-7802-1-git-send-email-jianchao.w.wang@oracle.com> <1517554849-7802-3-git-send-email-jianchao.w.wang@oracle.com> <20180202182413.GH24417@localhost.localdomain> From: "jianchao.wang" Message-ID: Date: Mon, 5 Feb 2018 10:26:03 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180202182413.GH24417@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8795 signatures=668662 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1802050029 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Keith Thanks for your kindly response. On 02/03/2018 02:24 AM, Keith Busch wrote: > On Fri, Feb 02, 2018 at 03:00:45PM +0800, Jianchao Wang wrote: >> Currently, request queue will be frozen and quiesced for both reset >> and shutdown case. This will trigger ioq requests in RECONNECTING >> state which should be avoided to prepare for following patch. >> Just freeze request queue for shutdown case and drain all the resudual >> entered requests after controller has been shutdown. > Freezing is not just for shutdown. It's also used so > blk_mq_update_nr_hw_queues will work if the queue count changes across > resets. blk_mq_update_nr_hw_queues will freeze the queue itself. Please refer to. static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues) { struct request_queue *q; lockdep_assert_held(&set->tag_list_lock); if (nr_hw_queues > nr_cpu_ids) nr_hw_queues = nr_cpu_ids; if (nr_hw_queues < 1 || nr_hw_queues == set->nr_hw_queues) return; list_for_each_entry(q, &set->tag_list, tag_set_list) blk_mq_freeze_queue(q); set->nr_hw_queues = nr_hw_queues; blk_mq_update_queue_map(set); list_for_each_entry(q, &set->tag_list, tag_set_list) { blk_mq_realloc_hw_ctxs(set, q); blk_mq_queue_reinit(q); } list_for_each_entry(q, &set->tag_list, tag_set_list) blk_mq_unfreeze_queue(q); } Thanks Jianchao