From nobody Wed Sep 3 15:55:38 2025 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 4cH6dk33xCz66dmw; Wed, 03 Sep 2025 15:55:38 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cH6dk2QSHz40JH; Wed, 03 Sep 2025 15:55:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1756914938; 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=8AYydzQ+Jlakj3c+3xbTKIplDbpnDsqscrBGDjhUzP0=; b=WRneppDR9Sb4Z/3NfV6Pqv+L1jmQH7aki5HIiNGtRwBCCqpbkj01K658BsTRRSTNMWo939 4W+Of+8dVpg6IaATuVcb5viK866OdKLHXGArnDrOOfgUl0PmNu3Ne9hD14h9lTPYqvCKNy GDvBcaLjdyuDjQrdlzJKVo8F9De/74DHA0fHoKOBCXaK8zVyzvNcIbt3nf2K+Qbb6bK5yc mZ4gdCM5NB6D8KCt2qwAm0BYpesyUdAPJwfRc4aN7OrxPQkiajzn20DLOHAvDIioq5g8Sx OhRMDvNpsUGhtsCtHN/S98DNC/m+FihyXZF1qRglcU3pMiiEDtLDHeVR72nm3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1756914938; 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=8AYydzQ+Jlakj3c+3xbTKIplDbpnDsqscrBGDjhUzP0=; b=gnQYx7Ur8VY7Sd7ZH728GvEIe2mNDelbsM5TkwbXqe23owvUC63rPqGEIdh97ZDxwUwgi1 4Sit+hu7u1ADowrwdgjlGq8ZzMO5TdBeS85wlMML0Fs6k0YVq6wWuKu8EBvRnVVym2lCDk nZmuY4zjsXQovzHAg8IcNQF5lk7M1nl0o1BFWkOF276fhJDozNYG9b3ZDEWF0s+vcgLXqM H1vup7c0MWtQBIxHC0Syh465sBlI5baGEoWuUCmZTbo9uHmE1Ov5NjVAvqRLHwxwe2CxpP IL5RETqQQfWNiggxXZaZH2lluBC+Bp/j1PEVp5e6vJKOTOSHhldNw0tKPa+lSw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1756914938; a=rsa-sha256; cv=none; b=kpRL1BSv2I72IwrzwQZaABJMCWL81YhTA97Uzc9Y8sVlf7Kn5tAzk0smxt3qibVUbuthg/ 3EL3rjzriFnqJa6dDo6KQn4z/A/ZTBBMsRx9SbswzdAP+v0XmYn0QFHF8lQH9romj4w+po wnfeS7e4NxExu0ZLZDCVPBwl8nua8R/Gi2Jdz47FCd/5laV7APzkKMHrf1rZMaICjhUTvH e0Oi/vS/8haJ1cFFxJJ9lM8eIyKZdmbqzbUqAZDcWQifPpiZMfwNkgcNQA2NheHhI0OvaQ 0GjiCtnq6C4p9lx+K+zslTw/pqngVvWLdjqW0I7+8tydDz0T+aFYanBwAykfSw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cH6dk1j0dz7X6; Wed, 03 Sep 2025 15:55:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 583FtcJf058277; Wed, 3 Sep 2025 15:55:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 583Ftcpm058274; Wed, 3 Sep 2025 15:55:38 GMT (envelope-from git) Date: Wed, 3 Sep 2025 15:55:38 GMT Message-Id: <202509031555.583Ftcpm058274@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: e26521574ecc - main - nvme: Always print the opcode hex and sct/sc hex values 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: e26521574eccf1ca4b97d6b7614ea50888434354 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e26521574eccf1ca4b97d6b7614ea50888434354 commit e26521574eccf1ca4b97d6b7614ea50888434354 Author: Warner Losh AuthorDate: 2025-09-03 15:54:49 +0000 Commit: Warner Losh CommitDate: 2025-09-03 15:55:24 +0000 nvme: Always print the opcode hex and sct/sc hex values While we can lookup the opcode and know exactly what we meant, sharing error messages with vendors can lead to some ambiguity. Go ahead and include the hex values for the error messages to aid in debugging. Sponsored by: Netflix Reviewed by: chuck Differential Revision: https://reviews.freebsd.org/D52353 --- sys/dev/nvme/nvme_util.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sys/dev/nvme/nvme_util.c b/sys/dev/nvme/nvme_util.c index 0a07653a7378..cb0ba729ac96 100644 --- a/sys/dev/nvme/nvme_util.c +++ b/sys/dev/nvme/nvme_util.c @@ -208,31 +208,33 @@ nvme_opcode_sbuf(bool admin, uint8_t opc, struct sbuf *sb) if (s == NULL) sbuf_printf(sb, "%s (%02x)", type, opc); else - sbuf_printf(sb, "%s", s); + sbuf_printf(sb, "%s (%02x)", s, opc); } void nvme_sc_sbuf(const struct nvme_completion *cpl, struct sbuf *sb) { const char *s, *type; - uint16_t status; + uint16_t status, sc, sct; status = le16toh(cpl->status); - switch (NVME_STATUS_GET_SCT(status)) { + sc = NVME_STATUS_GET_SC(status); + sct = NVME_STATUS_GET_SCT(status); + switch (sct) { case NVME_SCT_GENERIC: - s = generic_status[NVME_STATUS_GET_SC(status)]; + s = generic_status[sc]; type = "GENERIC"; break; case NVME_SCT_COMMAND_SPECIFIC: - s = command_specific_status[NVME_STATUS_GET_SC(status)]; + s = command_specific_status[sc]; type = "COMMAND SPECIFIC"; break; case NVME_SCT_MEDIA_ERROR: - s = media_error_status[NVME_STATUS_GET_SC(status)]; + s = media_error_status[sc]; type = "MEDIA ERROR"; break; case NVME_SCT_PATH_RELATED: - s = path_related_status[NVME_STATUS_GET_SC(status)]; + s = path_related_status[sc]; type = "PATH RELATED"; break; case NVME_SCT_VENDOR_SPECIFIC: @@ -246,12 +248,11 @@ nvme_sc_sbuf(const struct nvme_completion *cpl, struct sbuf *sb) } if (type == NULL) - sbuf_printf(sb, "RESERVED (%02x/%02x)", - NVME_STATUS_GET_SCT(status), NVME_STATUS_GET_SC(status)); + sbuf_printf(sb, "RESERVED (%02x/%02x)", sct, sc); else if (s == NULL) - sbuf_printf(sb, "%s (%02x)", type, NVME_STATUS_GET_SC(status)); + sbuf_printf(sb, "%s (%02x/%02x)", type, sct, sc); else - sbuf_printf(sb, "%s", s); + sbuf_printf(sb, "%s (%02x/%02x)", s, sct, sc); } void