From nobody Sun Feb 27 18:16:56 2022 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 7BBF719D5684; Sun, 27 Feb 2022 18:16:57 +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 4K6BYN5t0yz3MbN; Sun, 27 Feb 2022 18:16:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645985816; 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=h4/Xj6mSiFjToAe526nqpaXSPbU45/3wwjkhPbk+UdI=; b=HxKEAKv08WMEoAGRudMV25YSB0Z/PbqIQtr2602pDIJsLEb/p5FveuZ7Ps4ezwEfaiVS5b i6iHnNadrxr+PJvAvABC3ymXzqaG6kLryaIvL5YilB48TTSdtXad0zddT92SprvHiU/0EJ eWDJMCLQAlWMD9EUVT3PKhjlGQ89Bg8lpour3dSx6AaikX3zEii/GBaiaMR2TPH6/pcgMi TN3ECUsYQK/aD4RbM7myYvh6fRXK+shzzZOejoJlr6FAWAdpqNSTcCUS8SvpAktAbe+3uw 61Yj8jvGyC4hMEfz8MpyB3e7+TkGPZ3tz3PJq2mcPn2ws4h8+q5LfZrbPLctiw== 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 8E50440D9; Sun, 27 Feb 2022 18:16:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21RIGu0C058732; Sun, 27 Feb 2022 18:16:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21RIGuix058731; Sun, 27 Feb 2022 18:16:56 GMT (envelope-from git) Date: Sun, 27 Feb 2022 18:16:56 GMT Message-Id: <202202271816.21RIGuix058731@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Chuck Tuffli Subject: git: 0f26e9f2e26e - stable/13 - bhyve nvme: Advertise Namespace changed AEN 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: chuck X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0f26e9f2e26ea09d462f40a9b57df40228b1e01c Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645985816; 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=h4/Xj6mSiFjToAe526nqpaXSPbU45/3wwjkhPbk+UdI=; b=Vwm9FUJweNEzLk/S8DJUWve0doDzVqwetpesuXwy3csTJV5hF6/YiHiYAqpYAxWTsvWJek YT7KE7XgUPKHeFi9OOsKAkve7fOSOGzMAJ+du6626vHt3wXHUHxVQ+T6D4ebHcB/h+DZHN 19jAY3f8ga1Vuajai6WufPuw6GlVujwOPlDSWnkyVEiecizQfuAP96VtNlJHozU3aqG/wS aMJhh0xhRA3VSK2i0AQiHuzIgwlN3z9Ctt2zR6tBdxqELqgnmqZOawmAVYP6H+UtP3BSun mWTi4BiHKKsJUld5J/C9AJzecGPh9aTd+yJKFjnxhUnqw+C1EN/x3kTD7EmfRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1645985816; a=rsa-sha256; cv=none; b=X1qjoqVmenL3oyZsh8X28nRtCnZY+eW/x2rxqni8CF9qKRCj3tm+C5U1LbQvrwBFh/DdSu dhSRuAT9qlV/nUC9eee4yhY7VeW+cpRb9YtJw31o6he2rTi2in7biD8MEXRxNLKMD/9xNb Wsb9+E7qlYSv/k/i5FFzbFzMCnNIisgKvjWhOTnxfM0o94lxhJihqygCbwgGyRYrWw5GXl tMRO3uXUaswTVep7rF0lsrOmvZkmp6TBOqpqA7yJw3ow9qvEU8OCGbOcbgtWu2QMmcetrJ +7hbQ5y47JzN/nLRiYpYzXtFAq4guy8r3YVBchMtAcTHLM3eW/S938LAthZjig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by chuck: URL: https://cgit.FreeBSD.org/src/commit/?id=0f26e9f2e26ea09d462f40a9b57df40228b1e01c commit 0f26e9f2e26ea09d462f40a9b57df40228b1e01c Author: Chuck Tuffli AuthorDate: 2022-02-23 15:18:54 +0000 Commit: Chuck Tuffli CommitDate: 2022-02-28 01:59:31 +0000 bhyve nvme: Advertise Namespace changed AEN Advertise Namespace Attribute Notices events in the Optional Asynchronous Events Supported (OAES) field of the Identify Controller data structure. Additionally, rename the enums and macros to clarify these are AEN's related to Notices and not generic information. Reported by: andy@omniosce.org (cherry picked from commit e0ac9dc2b069c309c0dc18d3170d9883c421bfd9) --- usr.sbin/bhyve/pci_nvme.c | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index 8cb76303da94..2cb0472a8a90 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -269,16 +269,20 @@ struct pci_nvme_aer { uint16_t cid; /* Command ID of the submitted AER */ }; +/** Asynchronous Event Information - Notice */ typedef enum { - PCI_NVME_AE_INFO_NS_ATTR_CHANGED = 0, - PCI_NVME_AE_INFO_FW_ACTIVATION, - PCI_NVME_AE_INFO_TELEMETRY_CHANGE, - PCI_NVME_AE_INFO_ANA_CHANGE, - PCI_NVME_AE_INFO_PREDICT_LATENCY_CHANGE, - PCI_NVME_AE_INFO_LBA_STATUS_ALERT, - PCI_NVME_AE_INFO_ENDURANCE_GROUP_CHANGE, - PCI_NVME_AE_INFO_MAX, -} pci_nvme_async_info; + PCI_NVME_AEI_NOTICE_NS_ATTR_CHANGED = 0, + PCI_NVME_AEI_NOTICE_FW_ACTIVATION, + PCI_NVME_AEI_NOTICE_TELEMETRY_CHANGE, + PCI_NVME_AEI_NOTICE_ANA_CHANGE, + PCI_NVME_AEI_NOTICE_PREDICT_LATENCY_CHANGE, + PCI_NVME_AEI_NOTICE_LBA_STATUS_ALERT, + PCI_NVME_AEI_NOTICE_ENDURANCE_GROUP_CHANGE, + PCI_NVME_AEI_NOTICE_MAX, +} pci_nvme_async_event_info_notice; + +#define PCI_NVME_AEI_NOTICE_SHIFT 8 +#define PCI_NVME_AEI_NOTICE_MASK(event) (1 << (event + PCI_NVME_AEI_NOTICE_SHIFT)) /* Asynchronous Event Notifications */ struct pci_nvme_aen { @@ -536,6 +540,7 @@ pci_nvme_init_ctrldata(struct pci_nvme_softc *sc) cd->cntrltype = NVME_CNTRLTYPE_IO; cd->oacs = 1 << NVME_CTRLR_DATA_OACS_FORMAT_SHIFT; + cd->oaes = NVMEB(NVME_CTRLR_DATA_OAES_NS_ATTR); cd->acl = 2; cd->aerl = 4; @@ -944,35 +949,34 @@ pci_nvme_aen_process(struct pci_nvme_softc *sc) lid = NVME_LOG_HEALTH_INFORMATION; break; case PCI_NVME_AE_TYPE_NOTICE: - if (aen->event_data >= PCI_NVME_AE_INFO_MAX) { + if (aen->event_data >= PCI_NVME_AEI_NOTICE_MAX) { EPRINTLN("%s unknown AEN notice type %u", __func__, aen->event_data); status = NVME_SC_INTERNAL_DEVICE_ERROR; break; } - mask >>= 8; - if (((1 << aen->event_data) & mask) == 0) + if ((PCI_NVME_AEI_NOTICE_MASK(aen->event_data) & mask) == 0) continue; switch (aen->event_data) { - case PCI_NVME_AE_INFO_NS_ATTR_CHANGED: + case PCI_NVME_AEI_NOTICE_NS_ATTR_CHANGED: lid = NVME_LOG_CHANGED_NAMESPACE; break; - case PCI_NVME_AE_INFO_FW_ACTIVATION: + case PCI_NVME_AEI_NOTICE_FW_ACTIVATION: lid = NVME_LOG_FIRMWARE_SLOT; break; - case PCI_NVME_AE_INFO_TELEMETRY_CHANGE: + case PCI_NVME_AEI_NOTICE_TELEMETRY_CHANGE: lid = NVME_LOG_TELEMETRY_CONTROLLER_INITIATED; break; - case PCI_NVME_AE_INFO_ANA_CHANGE: + case PCI_NVME_AEI_NOTICE_ANA_CHANGE: lid = NVME_LOG_ASYMMETRIC_NAMESPACE_ACCESS; break; - case PCI_NVME_AE_INFO_PREDICT_LATENCY_CHANGE: + case PCI_NVME_AEI_NOTICE_PREDICT_LATENCY_CHANGE: lid = NVME_LOG_PREDICTABLE_LATENCY_EVENT_AGGREGATE; break; - case PCI_NVME_AE_INFO_LBA_STATUS_ALERT: + case PCI_NVME_AEI_NOTICE_LBA_STATUS_ALERT: lid = NVME_LOG_LBA_STATUS_INFORMATION; break; - case PCI_NVME_AE_INFO_ENDURANCE_GROUP_CHANGE: + case PCI_NVME_AEI_NOTICE_ENDURANCE_GROUP_CHANGE: lid = NVME_LOG_ENDURANCE_GROUP_EVENT_AGGREGATE; break; default: @@ -3171,7 +3175,7 @@ pci_nvme_resized(struct blockif_ctxt *bctxt, void *arg, size_t new_size) sc->ns_log.ns[1] = 0; pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_NOTICE, - PCI_NVME_AE_INFO_NS_ATTR_CHANGED); + PCI_NVME_AEI_NOTICE_NS_ATTR_CHANGED); } static int