Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3253151img; Mon, 25 Mar 2019 06:49:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqzd5ryduX8ELn6mvLWNuLWxo8NCFPpJf0WdLv12x7tKY9tTJorEXnqzsFR16iyyinCNbXia X-Received: by 2002:a17:902:bccb:: with SMTP id o11mr25562706pls.23.1553521764164; Mon, 25 Mar 2019 06:49:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553521764; cv=none; d=google.com; s=arc-20160816; b=qlPiG12k8MrnUj0GSqn/NR2Huv3TbPsTDa/TjV6d5xGLFK7hcpcG+fQA0Lr1AuDkUb xEqM/7Lk+egnD0qrCd++93wnjdhZ1XSvbV4rYyhZKWL1XnZL9dQd9DsmZ5ln0avi2RG5 QwgFpcqr+QpcULJx0tolah4wfIACzgjIeLMMGqBzG3P261Hpru9uJo/JjKuQdMnySWvz mwXFxFhMHRY5DdTYxb022VSIdy53i2SkoQoGY7v5camTZGYYxaHgDboMICzluUxZAeV6 0xXI/OSv+71z58fupEalViAlqR3kCuv8Cs6n0cjdWlFux6tw56A3+NoHTp5h3N5pkkBi oPjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=RA5q9JPt+g4BuA2WAtZKYnH0ae0Hq57mSjDJHYpp/Qo=; b=qrumtPRxVoWxKKcOJnihe1+1QoVgPJKUdYCKc5n8oIbLFrI99l0bY7gTNVl7JOp9jD aGJTjDx++4ik0GB/BxOXUagnOGz+gMsAWS/2PhvBaI8e1NVPjM/wordR5I/Thtw/M8/b 4g4n1jZnj3qIVv6jxn9WVCjlR2KnJfnrnmINY376qnWluQ1WOIN22Mx6rbQdmitiKlWi LJq03Aj2uGs2C6cSaPGyAWzTLMveIiNhr9AVCOdrZtaeanSdoUxgIju4nIgkA5MbfBIb x2C4tm+7LrQNeE9+nLmc5Tqk+J0QXPyeNUsrE1LnHI/N4m6L7j19G0rA0rBV5O3PZj9H tg+w== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m18si13068545pgv.396.2019.03.25.06.49.09; Mon, 25 Mar 2019 06:49:24 -0700 (PDT) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729058AbfCYNs0 (ORCPT + 99 others); Mon, 25 Mar 2019 09:48:26 -0400 Received: from mga01.intel.com ([192.55.52.88]:5603 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727111AbfCYNs0 (ORCPT ); Mon, 25 Mar 2019 09:48:26 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Mar 2019 06:48:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,269,1549958400"; d="scan'208";a="217363341" Received: from unknown (HELO localhost.localdomain) ([10.232.112.69]) by orsmga001.jf.intel.com with ESMTP; 25 Mar 2019 06:48:11 -0700 Date: Mon, 25 Mar 2019 07:49:18 -0600 From: Keith Busch To: Jianchao Wang Cc: axboe@kernel.dk, hch@lst.de, jthumshirn@suse.de, hare@suse.de, josef@toxicpanda.com, bvanassche@acm.org, sagi@grimberg.me, keith.busch@intel.com, jsmart2021@gmail.com, linux-block@vger.kernel.org, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V2 7/8] nvme: use blk_mq_queue_tag_inflight_iter Message-ID: <20190325134917.GA4328@localhost.localdomain> References: <1553492318-1810-1-git-send-email-jianchao.w.wang@oracle.com> <1553492318-1810-8-git-send-email-jianchao.w.wang@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1553492318-1810-8-git-send-email-jianchao.w.wang@oracle.com> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 25, 2019 at 01:38:37PM +0800, Jianchao Wang wrote: > blk_mq_tagset_inflight_iter is not safe that it could get stale request > in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here. A new helper > interface nvme_iterate_inflight_rqs is introduced to iterate > all of the ns under a ctrl. Nak, NVMe only iterates tags when new requests can't enter, allocated requests can't dispatch, and dispatched commands can't complete. So it is perfectly safe to iterate if the driver takes reasonable steps beforehand. Further, for M tags and N namespaces, we complete teardown in O(M) time, but this makes in O(M*N) without gaining anything.