[PATCH] nvme: make providing NGUID as UUID usage less scary
Sagi Grimberg
sagi at grimberg.me
Sun May 10 15:19:59 PDT 2026
On 07/05/2026 19:36, AlanCui4080 wrote:
> Hi,
>
>> From: Keith Busch <kbusch at kernel.org>
>>
>> The warning is a bit alarming, and it only prints for the very first
>> non-sgl capable device that receives a passthrough command. Just log an
>> informational message on initial discovery for every device.
> Since we decide to show this warning at device initial discovery stage,
> here are some similar warnings 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 i guess. So let's degrade it into a
> informational message on initial discovery for every device.
>
> Signed-off-by: Alan Cui <me at alancui.cc>
> ---
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 3fdcd73b9546..c432d8bc7b62 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -4296,6 +4296,10 @@ static void nvme_validate_ns(struct nvme_ns *ns, struct nvme_ns_info *info)
> goto out;
> }
>
> + if (uuid_is_null(&info->ids.uuid)) {
> + dev_info(ns->ctrl->device, "No UUID available, uuid_show providing old NGUID\n");
> + }
> +
> ret = nvme_update_ns_info(ns, info);
> out:
> /*
> diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
> index 29430949ce2f..839a36c22ebf 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);
TBH, I'm not sure why should this be a warning or an info log. This
looks like a debug print to me.
Keith WDYT?
More information about the Linux-nvme
mailing list