Christoph, > This patch adds native multipath support to the nvme driver. For each > namespace we create only single block device node, which can be used > to access that namespace through any of the controllers that refer to > it. The gendisk for each controllers path to the name space still > exists inside the kernel, but is hidden from userspace. The character > device nodes are still available on a per-controller basis. A new > link from the sysfs directory for the subsystem allows to find all > controllers for a given subsystem. > > Currently we will always send I/O to the first available path, this > will be changed once the NVMe Asynchronous Namespace Access (ANA) TP > is ratified and implemented, at which point we will look at the ANA > state for each namespace. Another possibility that was prototyped is > to use the path that is closes to the submitting NUMA code, which will > be mostly interesting for PCI, but might also be useful for RDMA or FC > transports in the future. There is not plan to implement round robin > or I/O service time path selectors, as those are not scalable with the > performance rates provided by NVMe. > > The multipath device will go away once all paths to it disappear, any > delay to keep it alive needs to be implemented at the controller > level. Beautiful! Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> -- Martin K. Petersen Oracle Linux Engineering