[PATCH v3] nvme-multipath: expose path_state via sysfs
Guixin Liu
kanie at linux.alibaba.com
Tue Jul 14 00:02:20 PDT 2026
Hi Keith, gently ping.
Best Regards,
Guixin Liu
在 2026/7/7 09:47, Guixin Liu 写道:
>
>
> 在 2026/6/24 21:21, Nilay Shroff 写道:
>> On 6/24/26 5:22 PM, Guixin Liu wrote:
>>>
>>>
>>> 在 2026/6/24 17:55, Daniel Wagner 写道:
>>>> On Wed, Jun 24, 2026 at 08:36:44AM +0100, John Garry wrote:
>>>>> On 24/06/2026 06:48, Guixin Liu wrote:
>>>>>> Add a read-only "path_state" sysfs attribute to each NVMe path
>>>>>> namespace
>>>>>> device (/sys/class/nvme/nvmeX/nvmeXcYnZ/path_state) that exposes the
>>>>>> current path state, including whether the path is enabled or
>>>>>> disabled
>>>>>> with a specific reason.
>>>>>>
>>>>>> Factor the path disable checks from nvme_path_is_disabled() into
>>>>>> a new
>>>>>> nvme_path_get_state() helper that returns an enum
>>>>>> nvme_path_state. This
>>>>>> keeps the path selection logic and sysfs reporting in sync, so
>>>>>> any future
>>>>>> updates to the path disable criteria are automatically reflected
>>>>>> in the
>>>>>> sysfs output.
>>>>>>
>>>>>> Possible values:
>>>>>> - "enabled (optimized)" : ANA state is optimized
>>>>>> - "enabled (non-optimized)" : ANA state is not optimized
>>>>>> - "disabled (ctrl_down)" : controller is not live
>>>>>> - "disabled (ana_pending)" : ANA state change pending
>>>>>> - "disabled (ns_not_ready)" : namespace is not ready
>>>> I'd prefer to have a single string here instead of something we
>>>> might need
>>>> to parse again. The sysfs docs says
>>>>
>>>> Mixing types, expressing multiple lines of data, and doing fancy
>>>> formatting of data is heavily frowned upon. Doing these things
>>>> may get
>>>> you publicly humiliated and your code rewritten without notice.
>>>>
>>>> Something like
>>>>
>>>> - optimized
>>>> - non-optimized
>>>> - ctrl-down
>>>> - ana-pending
>>>> - ns-no-ready
>>> Would this be redundant with ana_state?
>>>
>>> Is this OK?
>>> - enabled
>>> - ctrl-down
>>> - ana-pending
>>> - ns-not-ready
>>>
>>>
>>> CC Keith, John, Nilay, what do you think?
>>
>> I tend to agree with Daniel about both mixing types and
>> reporting ana state values here as ana state is also reported
>> separately.
>>
>> The purpose of path_state is really to expose whether the path
>> is currently eligible for path selection and, if not, why.
>>
>> IMO, a simpler set of values which you suggested above
>> should be sufficient. But lets wait if Keith has any
>> other suggestion.
>>
>> Thanks
>> --Nilay
>>
> Hi Keith, would you have any suggestions on this?
>
> Best Regards,
> Guixin Liu
>
More information about the Linux-nvme
mailing list