From nobody Thu Sep 28 21:10:18 2023 X-Original-To: dev-commits-src-branches@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 4RxR2g0h7fz4vbkR; Thu, 28 Sep 2023 21:10:19 +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 4RxR2g0FVRz3F9d; Thu, 28 Sep 2023 21:10:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695935419; 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=Fy9aIVbM4R9RzEsRjZb58cfEpVzcBrCw1+4B59foARs=; b=hCdvJ0ta+t9Alo2Q/kr8Cm2T/8IK7aUmFKt0Q+4vf2Is3RotqeisU/uTCV9/23xS4ch4J/ 2nGmpi2zUifD5ODfh3DU83FSU0wTaSWNof3e3Qw8hJwV9ZVTANnnPN+RZ5EHx1tSKW9Vu+ MVfzza5b8W0JAIXkSZqxbAjqfB1kqotPjNWvrBidzRNmxl52fpOPzJ3a0xOJxqk6vaFQOG wTlaSXYHVROezYaUI+gb/XgRVr/uF0tWAJPSOlMLq7lbkvGJZGU0k7bPtafk0OCmYr8r7m 3dVnhxYMd4df0VLv/t5S107F2E1AO0ANPYivwEE2VGgic/5e9Ka3tw2GyG3jIg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1695935419; a=rsa-sha256; cv=none; b=gxk0oiSZhiL5xNEZ7DQvTNN4ZzWQSt42fe4aYVAPZtXLO92R6kVZeacTGYb9pQI1if0VHG ZfcfZLAbWmtIF3c9eMtUbTUnyre6ptHj0iieR0m8eRw3p4WZYqHCv4KNByWXNHW7bxERPY LLyw2NT6mdAPI3PTwAPCKI4wm+jTaIGwcJmx5gQXDEAnV8tjaWYzFZVLDdFitVfT5jbuJI /qsMzOddV8fwLthzBke5+HHDSQewJTD5Y3hfvnH5XxRcVgogIgNtNZuCcLeyEuIG5a0QOQ ThU+GByCU1IBShqYQOcUnT9UtSWNeeXE7YavF23MmLiO070ABNmFqpvgWFp6/w== 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=1695935419; 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=Fy9aIVbM4R9RzEsRjZb58cfEpVzcBrCw1+4B59foARs=; b=fHdB30QN7xWZ53ijjako52sCISeYlUr8Kciuvt1sMd2yVK6Cq/D1wo1XIQnVB8Pm5BXWsd smwWIgl8LJfRpBn+Lb+5eXmuUGXlSLtGEzzTTNutqYpsENMP2BPjxlrvaGgiWeWY46KyNc MUJdqS8IintNo08+VD9gnoJ0wnz5B6uY/wUQLWm+g4tCkPmCSNxZ1f5YYukCfSSOQ4pMxq YxwxxcXz7NkOlPIkZgDBoRQCjsDbwoww/B9im1p2QBzj/bZj2kpFAE/VEcnWB/Ebjd2/MG dwFfT56CeTq0K0Rv79XiwuYXwRdxVH5OI9NIx9ex/MIcpxsaWlURcUq0pp2vsA== 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 4RxR2f6HMGzdGw; Thu, 28 Sep 2023 21:10:18 +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 38SLAIvH048659; Thu, 28 Sep 2023 21:10:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38SLAI6Z048656; Thu, 28 Sep 2023 21:10:18 GMT (envelope-from git) Date: Thu, 28 Sep 2023 21:10:18 GMT Message-Id: <202309282110.38SLAI6Z048656@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 5e9b7d0e0e0b - stable/14 - nvme: Give up when we've failed List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 5e9b7d0e0e0bd4cba29de33569ab0ca86763f635 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=5e9b7d0e0e0bd4cba29de33569ab0ca86763f635 commit 5e9b7d0e0e0bd4cba29de33569ab0ca86763f635 Author: Warner Losh AuthorDate: 2023-09-28 20:46:00 +0000 Commit: Warner Losh CommitDate: 2023-09-28 21:05:14 +0000 nvme: Give up when we've failed Normally, we poll the device every so often to see if commands have timed out. However, we'll go into the recovery state as part of failing the drive. To account for all possibilties, if we're failed when we get into the polling function, just stop polling: Party is over. Sponsored by: Netflix (cherry picked from commit d95431624f934fe4740211738fc787808005b14e) --- sys/dev/nvme/nvme_qpair.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c index b256c4713c8d..4e37aa0e1020 100644 --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -1011,6 +1011,17 @@ nvme_qpair_timeout(void *arg) mtx_assert(&qpair->recovery, MA_OWNED); + /* + * If the controller has failed, give up. We're never going to change + * state from a failed controller: no further transactions are possible. + * We go ahead and let the timeout expire in many cases for simplicity. + */ + if (qpair->ctrlr->is_failed) { + nvme_printf(ctrlr, "Controller failed, giving up\n"); + qpair->timer_armed = false; + return; + } + switch (qpair->recovery_state) { case RECOVERY_NONE: /* @@ -1094,8 +1105,8 @@ nvme_qpair_timeout(void *arg) idle = false; /* We want to keep polling */ break; case RECOVERY_WAITING: - nvme_printf(ctrlr, "waiting for reset to complete\n"); - idle = false; /* We want to keep polling */ + nvme_printf(ctrlr, "Waiting for reset to complete\n"); + idle = false; /* We want to keep polling */ break; }