Skip to content

Conversation

@tbzatek
Copy link
Member

@tbzatek tbzatek commented Oct 21, 2025

This lays down a foundation for tracking NVMe subsystems, effectively creating uevent broadcast groups. This allows drive and block objects to receive uevents targeted for other devices in the subsystem.

With the planned uevent action extension of pre-/post- actions the string
comparison gets quite heavy. Better to use numeric constants to spare
some CPU cycles.
This lays down a foundation for tracking NVMe subsystems, effectively
creating uevent broadcast groups. This allows drive and block objects
to receive uevents targeted for other devices in the subsystem.
In certain situations, e.g. when the kernel host nvme driver failed
to probe the device or when the controller was not in a 'live' state,
an invalid Subsystem NQN values may appear in sysfs. In such a case
subsystem tracking should be skipped with an expectation of another
uevent once the controller recovers or becomes live.

The commonly seen values are '(efault)' and '(null)'. See also
https://www.kernel.org/doc/Documentation/core-api/printk-formats.rst
…vent

Update block and drive object interfaces on an incoming NVMe subsystem
uevent. This allows to properly reflect the state of a NVMe subsystem
native multipath where one path disappears and uevents are sent only to
a limited number of devices.

This allows e.g. to update Drive property references once the
primary/active path/controller disappears and another one in the subsystem
takes over.
Despite that UDisksLinuxProvider should register and process incoming
uevent for the newly connected controller(s), the purpose of triggering
additional subsystem uevent is to ensure all objects are up to date
upon the Connect() method call return.
Trigger a synchronous subsystem uevent so that all objects in
the subsystem are fully updated upon the method call return.
@tbzatek

This comment was marked as duplicate.

1 similar comment
@tbzatek

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant