From nobody Mon May 13 22:38:29 2024 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VdZC950rkz5L4jX; Mon, 13 May 2024 22:38:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VdZC94PyGz41Wp; Mon, 13 May 2024 22:38:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715639909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N1dly3nTn/0Msg+UjLwUocs+LrqqR996EgRNftPQqQA=; b=qpr8TX4mu9zHnaLCKswjxgmgxELXDjtXxiJCzZOHXOE/3/aEhLpE1SK4Rw8vTmCjUXlWjw VuZJ5oLKzi201J9sfXpRwlRygCXzmlUinWqv1F7j01YlXbXEmMGzHHo3B/a3LxSDEDNn9e b+jHGpr7qc3YRKcaxISzrhqbHEIE/9P2VPV6MjuJ5JlfLrTh76J6ZKBPmUuhUgHsxFkKUp KpxeDMiOKOZaGfQPyVRjrK9zIZfgQFqk7QXPLts7s4iRaAQYYonlSoHcBpRU6pTE2zyFcI IhswkvvoMrxK86hvyts1vIChJz4dA6vxEA7KgZtF75Zr4knc9NWrZq13vqVu3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1715639909; a=rsa-sha256; cv=none; b=OvMbK1uSTPzNxtqvyABqTXCt9e4rizAGCjdTghCD00ghq6DEoDzuzWZH9SChebKrn6vHdq zpauRnEopiLG3S6J842RIMx4fKWM0W+aZ4XkHZslWY6cBvWiIUqyMYNmf03Y5x6g6ceJIc kDbvqJQ5haq3TDue1+4jRxm8HN//Ab1uvOXBbpF1ZyZb97nnbivgkGIF2sAYWZh8HnnXWg 3ULrgCmwoHdYdpP/tQT+USX8etG8OOWnaL27Uig7cMYEy+FHDzgyQcB6v3pskB/omuxd03 jB4OD9MqB/SvpLql7Y2Bdehpr9ciccr0uadIrHDx7xhMWKVvZEmnKZcjchwHhQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715639909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N1dly3nTn/0Msg+UjLwUocs+LrqqR996EgRNftPQqQA=; b=Gw9PaZr7p2kxQUseWPrXHtWVIj0WV4zyPnVZQp3LoxN+gHzM7Uw74vkWGGENfdlYR3SZtm ntFdFoaEkgv4kH7+yVwGOGUxN62oQ3HmzgeHBl+u00eoGe20Ru+u0eZGPyCzJz7qmbsZmi 2R9ZNFptJ8wJVKdFjPCZnhB4iW3/MwyJ8FAwK9hb5bX9i+6Dh32HhSlt/JfL73FfxHcPnL l7zdw/wrhQYp7J8ZWj6vlIf5qHuu/2w0bDzN3EO/+mSj4p6/rmOlnqPRAVX9rtEohstDNK 7HaIvuZVWAExIXZ57XC5LKyjqG5DiMI5t1Anuh0imGqF5bZ0TiRunkn9L9ZRUg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4VdZC941Czz16Cw; Mon, 13 May 2024 22:38:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 44DMcTUF058246; Mon, 13 May 2024 22:38:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 44DMcTMU058243; Mon, 13 May 2024 22:38:29 GMT (envelope-from git) Date: Mon, 13 May 2024 22:38:29 GMT Message-Id: <202405132238.44DMcTMU058243@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 9db8ca92b985 - main - nvme: Slight reworking this loop to match FreeBSD style List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9db8ca92b98588e705f4d021e934edd60c51fb98 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9db8ca92b98588e705f4d021e934edd60c51fb98 commit 9db8ca92b98588e705f4d021e934edd60c51fb98 Author: Warner Losh AuthorDate: 2024-05-13 20:55:42 +0000 Commit: Warner Losh CommitDate: 2024-05-13 22:14:04 +0000 nvme: Slight reworking this loop to match FreeBSD style Update the comment for the code, and slightly rework the code in the 'fast exit' paradigm that FreeBSD generally tries to do. Sponsored by: Netflix --- sys/dev/nvme/nvme_qpair.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c index b11bdc44dc40..dd26906a933b 100644 --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -953,27 +953,26 @@ nvme_admin_qpair_abort_aers(struct nvme_qpair *qpair) /* * nvme_complete_tracker must be called without the qpair lock held. It * takes the lock to adjust outstanding_tr list, so make sure we don't - * have it yet (since this is a general purpose routine). We take the - * lock to make the list traverse safe, but have to drop the lock to - * complete any AER. We restart the list scan when we do this to make - * this safe. There's interlock with the ISR so we know this tracker - * won't be completed twice. + * have it yet. We need the lock to make the list traverse safe, but + * have to drop the lock to complete any AER. We restart the list scan + * when we do this to make this safe. There's interlock with the ISR so + * we know this tracker won't be completed twice. */ mtx_assert(&qpair->lock, MA_NOTOWNED); mtx_lock(&qpair->lock); tr = TAILQ_FIRST(&qpair->outstanding_tr); while (tr != NULL) { - if (tr->req->cmd.opc == NVME_OPC_ASYNC_EVENT_REQUEST) { - mtx_unlock(&qpair->lock); - nvme_qpair_manual_complete_tracker(tr, - NVME_SCT_GENERIC, NVME_SC_ABORTED_SQ_DELETION, 0, - ERROR_PRINT_NONE); - mtx_lock(&qpair->lock); - tr = TAILQ_FIRST(&qpair->outstanding_tr); - } else { + if (tr->req->cmd.opc != NVME_OPC_ASYNC_EVENT_REQUEST) { tr = TAILQ_NEXT(tr, tailq); + continue; } + mtx_unlock(&qpair->lock); + nvme_qpair_manual_complete_tracker(tr, + NVME_SCT_GENERIC, NVME_SC_ABORTED_SQ_DELETION, 0, + ERROR_PRINT_NONE); + mtx_lock(&qpair->lock); + tr = TAILQ_FIRST(&qpair->outstanding_tr); } mtx_unlock(&qpair->lock); }