From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out28-42.mail.aliyun.com (out28-42.mail.aliyun.com [115.124.28.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A1DF2F99B8 for ; Mon, 11 May 2026 08:30:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.28.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488218; cv=none; b=fJf0wFX8fcjCNMORomNvvzpyFaRtvaalJOIWmHbKilS0X8pYeJ8GrX0N8Pu1F2HHyXoBCEmCuUXtaj5eqZQGfiETB5pQKeO62M40G/R3tYjYYYbc65/qu3VathEwPWYvW6CFkTjHl8hfRyjBB8KRwtj8ZRXeRhqI0puZclM3fjY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488218; c=relaxed/simple; bh=hcEU9jx10sWd9quMr+6++wWrtWf6Q3SYSSY6Tl2bkkg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GdWsx2DxNskq1iFzLLluKL+r79wRqKF2jSw5Jv3j9kcK0YTOHbWYbuU+tXi1Z/3rMHm9v3KDpSJ+rxuXOQW0V1SUTXEcbpejlaIt69iBQYHTkUH3GGlNMpv/Fpqe+NYmcucrCY0JKw1kIaj7pJAWggaWrI8VQPDjWlM/UDeryP0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=alancui.cc; spf=pass smtp.mailfrom=alancui.cc; dkim=pass (2048-bit key) header.d=alancui.cc header.i=@alancui.cc header.b=Fy+lt/4U; arc=none smtp.client-ip=115.124.28.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=alancui.cc Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=alancui.cc Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=alancui.cc header.i=@alancui.cc header.b="Fy+lt/4U" DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=alancui.cc; s=default; t=1778488200; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; bh=CQkCJOekpzr4oSS5FFCc+ZvzJJELquPaD/Yon1iSBSw=; b=Fy+lt/4UgY1/NQYpEu3GQLhdGbRH7ZeTwGznhYrC8UKVKieK0Qc3ORrTzYLuCSnKzmYaJXoH2K2NSeft9xxOvKJhYhFRNwIm6WZO+2moWDUpDW0cegGa2BUcaSiCC/uh1Y1q2XEeGU+YzSQF6KXjOfvrNOwu7aOmfqfH30gh7/EuxrTcyhmImkHVao+sVhdeO8x7HofX6fRVmCndK3TX2Wyhm/r/hTH44l0o/Uur6nB1AXM1x3ck1Erpik1xYQgqFpVeQ1QgAu6RaBHrN5Wt7D/4KVQMOWLOeP8FsF+WGAHXShdLRGpCK9LLBFzjhjZp4D0YS++PV9iSOUEmSatxWw== X-Alimail-AntiSpam:AC=CONTINUE;BC=0.9243625|0.09915012;CH=green;DM=|AD|false|;DS=CONTINUE|ham_system_inform|0.032702-0.00222044-0.965078;FP=1216133566099408019|0|0|0|0|-1|-1|-1;HT=maildocker-contentspam033037025160;MF=me@alancui.cc;NM=1;PH=DS;RN=6;RT=6;SR=0;TI=SMTPD_---.hUT8Hs._1778488198; Received: from alanarchdesktop.localnet(mailfrom:me@alancui.cc fp:SMTPD_---.hUT8Hs._1778488198 cluster:ay29) by smtp.aliyun-inc.com; Mon, 11 May 2026 16:29:59 +0800 From: AlanCui4080 To: linux-nvme@lists.infradead.org, Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg Cc: linux-kernel@vger.kernel.org Subject: [PATCH RFC V2 RESEND] nvme: make providing NGUID as UUID usage less scary Date: Mon, 11 May 2026 16:29:58 +0800 Message-ID: In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" Since we decide to show the prp passthrough usage warning at device initial discovery stage and degrade it to a informational message, here is a warning that I think are essentially the same. grep -C3 -rn "dev_warn_once" ./drivers/nvme/* ``` ./drivers/nvme/host/sysfs.c-147- * we have no UUID set ./drivers/nvme/host/sysfs.c-148- */ ./drivers/nvme/host/sysfs.c-149- if (uuid_is_null(&ids->uuid)) { ./drivers/nvme/host/sysfs.c:150: dev_warn_once(dev, ./drivers/nvme/host/sysfs.c-151- "No UUID available providing old NGUID\n"); ./drivers/nvme/host/sysfs.c-152- return sysfs_emit(buf, "%pU\n", ids->nguid); ./drivers/nvme/host/sysfs.c-153- } ``` This warning will only complain for the first partition of the first device also. And for NVMe devices, according to the NVM-Express-1_4 specification p.175 Figure 251: "Bit 9 (UUID List): ...", UUID is not mandatory. So let's degrade it into a informational message on initial discovery for every device. Signed-off-by: Alan Cui --- v2: move the hint to nvme_init_ns_head instead of nvme_validate_ns v2: clean the commit message lines In my understanding, the nvme_init_ns_head will be called each time a namespace created, and it does some checking on ids so we also place the hint there, and here is the result of dmesg applied current patch. resend v2: add Ccs to all maintainers resend v2: see https://lists.infradead.org/pipermail/linux-nvme/2026-May/062831.html After discussion, I begin to think we should treat this as a warning, since the way kernel generate UUID by NGUID is not a valid RFC4122 UUID, and NVMe specification requires "The Universally Unique Identifier is defined in RFC4122" However the "No UUID available providing old NGUID" is should be reported per device anyway. [ 4.502052] nvme nvme1: pci function 0000:05:00.0 [ 4.502060] nvme nvme0: pci function 0000:01:00.0 [ 4.508544] nvme nvme1: missing or invalid SUBNQN field. [ 4.508664] nvme nvme1: D3 entry latency set to 8 seconds [ 4.512422] nvme nvme0: missing or invalid SUBNQN field. [ 4.517581] nvme nvme0: allocated 32 MiB host memory buffer (1 segment). [ 4.523519] nvme nvme0: 8/0/0 default/read/poll queues [ 4.524761] nvme nvme1: 16/0/0 default/read/poll queues [ 4.525438] nvme nvme0: No UUID available, uuid_show providing old NGUID [ 4.526683] nvme nvme1: No UUID available, uuid_show providing old NGUID [ 4.527243] nvme0n1: p1 p2 p3 p4 p5 p6 [ 4.528351] nvme1n1: p1 diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 766e9cc4ffca..70856856a99c 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -4007,6 +4007,10 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info) ctrl->quirks |= NVME_QUIRK_BOGUS_NID; } + if (uuid_is_null(&info->ids.uuid)) { + dev_info(ctrl->device, "No UUID available, uuid_show providing old NGUID\n"); + } + mutex_lock(&ctrl->subsys->lock); head = nvme_find_ns_head(ctrl, info->nsid); if (!head) { diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c index 16c6fea4b2db..ea8bce9887f9 100644 --- a/drivers/nvme/host/sysfs.c +++ b/drivers/nvme/host/sysfs.c @@ -147,8 +147,6 @@ static ssize_t uuid_show(struct device *dev, struct device_attribute *attr, * we have no UUID set */ if (uuid_is_null(&ids->uuid)) { - dev_warn_once(dev, - "No UUID available providing old NGUID\n"); return sysfs_emit(buf, "%pU\n", ids->nguid); } return sysfs_emit(buf, "%pU\n", &ids->uuid); -- 2.54.0