From nobody Thu Mar 07 01:39:14 2024 X-Original-To: dev-commits-src-all@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 4TqsR61yDDz5CLyq; Thu, 7 Mar 2024 01:39:14 +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 4TqsR61Lzqz4vZL; Thu, 7 Mar 2024 01:39:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1709775554; 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=DDt2dfxIir0TRgWJoYuOXWPB0Fy3h6AWB8DYABFLAJE=; b=fXNydrM5fvOlaLO5UxfR/J+bvx7sDCKk6KN6uAKcW7xXQ+bWo/vVqJJf3rZtxLDalThrAz JSaesTWm6pULmw+9c9PLJkWPXZZEXqFBOrNgDcQU1fiTSx7CA/QsCy+p1V/S4HCcJso4KT muXBwNiVz6V2jbg68xz4LOnykA5i+7SAktsNJg25+FmWQxKk9/vhil5ABZtNwC/mzcQiPE 6KGU5KmTNDmPU5FCGVl7kjYI1HOkxJp2qmTSZ/f49eQFzgIrpnbrIMLrRQVlYuwZsBHpFD v3wjMIY7tfZFiVHPV3cHhMzrnhdKOmmNlAUMIFCkWgqu+WaXQ5jm6bOiGXBdGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1709775554; a=rsa-sha256; cv=none; b=rgWo1QRiy7Gv4TO1fcH5D95pxHl5SZTSfpkItiUF7NSYm9YctaWkQIW84996wPNrxAI9Bs smMHg9M3fqPFeHGj1WPFARzD/E6HVMYqB0TbCyyEAFGBZ8cSXwa0KJ4apqBhf2IXOJtgWK H7mJWy6PrsPQos57XLj7+zM2QYrVk7HDz/rZfVzHfsw3H3D+p+pluT/VW1b65tlUtFGU2Y mg+MWTZ8rX84XWzYoQAJh9xxZ2bjTY3bqNR0TX0ffq+TMKKxERZe8MGT+0ao71+/gMCQWz brrT4rHSMcansTrz2u86PpXufydtOcOY8vXDVPmLLqDH62AHm9EZa8KP46xxtw== 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=1709775554; 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=DDt2dfxIir0TRgWJoYuOXWPB0Fy3h6AWB8DYABFLAJE=; b=YYifY14fbUsn4Ztyb5/n4refVlxl605R2yLGq4ZZMB2A/d0G+TqmHywTL1oT6OYI+W2PBc VtoOleaRfDAZZKfAaNImEESyX+dbzNIp5aF7mXcDZK5Xi35eEa2lUVotmu4s7Adedj1GUS F4rFsWzxrLrCnnU+ZHs/PM3wNqUDpRnyl/t9zJ393XEGMPbxRhCtuHwiHwmk3Bot3p41PU 3BBMgxBkM8DA+RJkL5oKVaJupR+DCytwpEiKV+LA6H0Gh1t/6jlhsj1k0XZ92h/XZ5jDGq uwQTVZVVnLjIvXwe9+6Ruc/7DBMGysraex3qX3203GYOv0A4Q/FjdjJXzPa2Ug== 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 4TqsR60xr7z1Cvd; Thu, 7 Mar 2024 01:39:14 +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 4271dEMj057087; Thu, 7 Mar 2024 01:39:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 4271dELt057084; Thu, 7 Mar 2024 01:39:14 GMT (envelope-from git) Date: Thu, 7 Mar 2024 01:39:14 GMT Message-Id: <202403070139.4271dELt057084@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: 4f817fcf6a26 - main - nvme: Change devctl events for the controller List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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: 4f817fcf6a26435ef634645d9be9ef641b6ee164 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=4f817fcf6a26435ef634645d9be9ef641b6ee164 commit 4f817fcf6a26435ef634645d9be9ef641b6ee164 Author: Warner Losh AuthorDate: 2024-03-07 01:22:26 +0000 Commit: Warner Losh CommitDate: 2024-03-07 01:38:59 +0000 nvme: Change devctl events for the controller Change the devctl events slightly for the controller. SMART errors will log the changed bits in the NVME SMART Critical Warning State as its event. Reset will now emit 'event=start'. Soon more. Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D44210 --- sys/dev/nvme/nvme_ctrlr.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index 1bc0331f002c..609794edbf67 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -64,15 +64,24 @@ nvme_ctrlr_devctl_va(struct nvme_controller *ctrlr, const char *type, if (sbuf_new(&sb, NULL, 0, SBUF_AUTOEXTEND | SBUF_NOWAIT) == NULL) return; - sbuf_printf(&sb, "name=\"%s\" reason=\"", device_get_nameunit(ctrlr->dev)); + sbuf_printf(&sb, "name=\"%s\" ", device_get_nameunit(ctrlr->dev)); sbuf_vprintf(&sb, msg, ap); - sbuf_printf(&sb, "\""); error = sbuf_finish(&sb); if (error == 0) devctl_notify("nvme", "controller", type, sbuf_data(&sb)); sbuf_delete(&sb); } +static void +nvme_ctrlr_devctl(struct nvme_controller *ctrlr, const char *type, const char *msg, ...) +{ + va_list ap; + + va_start(ap, msg); + nvme_ctrlr_devctl_va(ctrlr, type, msg, ap); + va_end(ap); +} + static void nvme_ctrlr_devctl_log(struct nvme_controller *ctrlr, const char *type, const char *msg, ...) { @@ -640,29 +649,25 @@ nvme_ctrlr_log_critical_warnings(struct nvme_controller *ctrlr, { if (state & NVME_CRIT_WARN_ST_AVAILABLE_SPARE) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "available spare space below threshold"); + nvme_printf(ctrlr, "SMART WARNING: available spare space below threshold\n"); if (state & NVME_CRIT_WARN_ST_TEMPERATURE) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "temperature above threshold"); + nvme_printf(ctrlr, "SMART WARNING: temperature above threshold\n"); if (state & NVME_CRIT_WARN_ST_DEVICE_RELIABILITY) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "device reliability degraded"); + nvme_printf(ctrlr, "SMART WARNING: device reliability degraded\n"); if (state & NVME_CRIT_WARN_ST_READ_ONLY) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "media placed in read only mode"); + nvme_printf(ctrlr, "SMART WARNING: media placed in read only mode\n"); if (state & NVME_CRIT_WARN_ST_VOLATILE_MEMORY_BACKUP) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "volatile memory backup device failed"); + nvme_printf(ctrlr, "SMART WARNING: volatile memory backup device failed\n"); if (state & NVME_CRIT_WARN_ST_RESERVED_MASK) - nvme_ctrlr_devctl_log(ctrlr, "critical", - "unknown critical warning(s): state = 0x%02x", + nvme_printf(ctrlr, "SMART WARNING: unknown critical warning(s): state = 0x%02x\n", state & NVME_CRIT_WARN_ST_RESERVED_MASK); + + nvme_ctrlr_devctl(ctrlr, "critical", "SMART_ERROR", "state=0x%02x", state); } static void @@ -1172,7 +1177,7 @@ nvme_ctrlr_reset_task(void *arg, int pending) struct nvme_controller *ctrlr = arg; int status; - nvme_ctrlr_devctl_log(ctrlr, "RESET", "resetting controller"); + nvme_ctrlr_devctl_log(ctrlr, "RESET", "event=\"start\""); status = nvme_ctrlr_hw_reset(ctrlr); if (status == 0) nvme_ctrlr_start(ctrlr, true);