[PATCH 3/4] nvme: update the multipath warning in nvme_init_ns_head

John Meneghini posted 4 patches 1 year, 1 month ago
There is a newer version of this series
[PATCH 3/4] nvme: update the multipath warning in nvme_init_ns_head
Posted by John Meneghini 1 year, 1 month ago
The new NVME_MULTIPATH_PARAM config option requires updates
to the warning message in nvme_init_ns_head(). Remove
the old warning message and add new ones.

Signed-off-by: John Meneghini <jmeneghi@redhat.com>
---
 drivers/nvme/host/core.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 818d4e49aab5..c2b7e6834535 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3823,8 +3823,16 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
 			dev_warn(ctrl->device,
 				"Found shared namespace %d, but multipathing not supported.\n",
 				info->nsid);
+#ifdef CONFIG_NVME_MULTIPATH
+#ifdef CONFIG_NVME_MULTIPATH_PARAM
+			dev_warn_once(ctrl->device,
+				"Shared namespace support requires core.nvme_multipath=Y.\n");
+
+#endif
+#else
 			dev_warn_once(ctrl->device,
-				"Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
+				"Shared namespace support requires CONFIG_NVME_MULTIPATH.\n");
+#endif
 		}
 	}
 
-- 
2.48.1
Re: [PATCH 3/4] nvme: update the multipath warning in nvme_init_ns_head
Posted by Nilay Shroff 1 year, 1 month ago

On 2/28/25 8:55 AM, John Meneghini wrote:
> The new NVME_MULTIPATH_PARAM config option requires updates
> to the warning message in nvme_init_ns_head(). Remove
> the old warning message and add new ones.
> 
> Signed-off-by: John Meneghini <jmeneghi@redhat.com>
> ---
>  drivers/nvme/host/core.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 818d4e49aab5..c2b7e6834535 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -3823,8 +3823,16 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
>  			dev_warn(ctrl->device,
>  				"Found shared namespace %d, but multipathing not supported.\n",
>  				info->nsid);
> +#ifdef CONFIG_NVME_MULTIPATH
> +#ifdef CONFIG_NVME_MULTIPATH_PARAM
> +			dev_warn_once(ctrl->device,
> +				"Shared namespace support requires core.nvme_multipath=Y.\n");
> +
> +#endif
> +#else
>  			dev_warn_once(ctrl->device,
> -				"Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
> +				"Shared namespace support requires CONFIG_NVME_MULTIPATH.\n");
> +#endif
>  		}
>  	}
>  

As NVME_MULTIPATH_PARAM depends on NVME_MULTIPATH, it implicitly implies 
that if NVME_MULTIPATH_PARAM is enabled then NVME_MULTIPATH has to be on.
So above logic could be simplified.

However on another note, I really don't understand why do we need to add 
new warning here as there's already a warning present just above your
changes.

Thanks,
--Nilay
Re: [PATCH 3/4] nvme: update the multipath warning in nvme_init_ns_head
Posted by John Meneghini 1 year, 1 month ago
On 2/28/25 1:28 AM, Nilay Shroff wrote:
> On 2/28/25 8:55 AM, John Meneghini wrote:
>> The new NVME_MULTIPATH_PARAM config option requires updates
>> to the warning message in nvme_init_ns_head(). Remove
>> the old warning message and add new ones.
>>
>> Signed-off-by: John Meneghini <jmeneghi@redhat.com>
>> ---
>>   drivers/nvme/host/core.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
>> index 818d4e49aab5..c2b7e6834535 100644
>> --- a/drivers/nvme/host/core.c
>> +++ b/drivers/nvme/host/core.c
>> @@ -3823,8 +3823,16 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
>>   			dev_warn(ctrl->device,
>>   				"Found shared namespace %d, but multipathing not supported.\n",
>>   				info->nsid);
>> +#ifdef CONFIG_NVME_MULTIPATH
>> +#ifdef CONFIG_NVME_MULTIPATH_PARAM
>> +			dev_warn_once(ctrl->device,
>> +				"Shared namespace support requires core.nvme_multipath=Y.\n");
>> +
>> +#endif
>> +#else
>>   			dev_warn_once(ctrl->device,
>> -				"Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
>> +				"Shared namespace support requires CONFIG_NVME_MULTIPATH.\n");
>> +#endif
>>   		}
>>   	}
>>   
> 
> As NVME_MULTIPATH_PARAM depends on NVME_MULTIPATH, it implicitly implies
> that if NVME_MULTIPATH_PARAM is enabled then NVME_MULTIPATH has to be on.
> So above logic could be simplified.
> 
> However on another note, I really don't understand why do we need to add
> new warning here as there's already a warning present just above your
> changes.

Agreed.  How about if we just remove the

    	dev_warn_once(ctrl->device,
		"Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
  
This is real problem.  This is a confusing message since there is no now plan to remove any of these config options from the kernel.

/John

> Thanks,
> --Nilay
> 
>
Re: [PATCH 3/4] nvme: update the multipath warning in nvme_init_ns_head
Posted by Nilay Shroff 1 year ago

On 2/28/25 6:44 PM, John Meneghini wrote:
> On 2/28/25 1:28 AM, Nilay Shroff wrote:
>> On 2/28/25 8:55 AM, John Meneghini wrote:
>>> The new NVME_MULTIPATH_PARAM config option requires updates
>>> to the warning message in nvme_init_ns_head(). Remove
>>> the old warning message and add new ones.
>>>
>>> Signed-off-by: John Meneghini <jmeneghi@redhat.com>
>>> ---
>>>   drivers/nvme/host/core.c | 10 +++++++++-
>>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
>>> index 818d4e49aab5..c2b7e6834535 100644
>>> --- a/drivers/nvme/host/core.c
>>> +++ b/drivers/nvme/host/core.c
>>> @@ -3823,8 +3823,16 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
>>>               dev_warn(ctrl->device,
>>>                   "Found shared namespace %d, but multipathing not supported.\n",
>>>                   info->nsid);
>>> +#ifdef CONFIG_NVME_MULTIPATH
>>> +#ifdef CONFIG_NVME_MULTIPATH_PARAM
>>> +            dev_warn_once(ctrl->device,
>>> +                "Shared namespace support requires core.nvme_multipath=Y.\n");
>>> +
>>> +#endif
>>> +#else
>>>               dev_warn_once(ctrl->device,
>>> -                "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
>>> +                "Shared namespace support requires CONFIG_NVME_MULTIPATH.\n");
>>> +#endif
>>>           }
>>>       }
>>>   
>>
>> As NVME_MULTIPATH_PARAM depends on NVME_MULTIPATH, it implicitly implies
>> that if NVME_MULTIPATH_PARAM is enabled then NVME_MULTIPATH has to be on.
>> So above logic could be simplified.
>>
>> However on another note, I really don't understand why do we need to add
>> new warning here as there's already a warning present just above your
>> changes.
> 
> Agreed.  How about if we just remove the
> 
>        dev_warn_once(ctrl->device,
>         "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0.\n");
>  
> This is real problem.  This is a confusing message since there is no now plan to remove any of these config options from the kernel.
I read it as "NVMe (native) multipathing is only supported when CONFIG_NVME_MULTIPATH
is configured". 

So personally, I find existing warning messages (we print two warning messages when 
multipath is false but shared namespace is detected) sufficient, however lets see 
what others suggest.

Thanks,
--Nilay