The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* Re: [PATCH v2 00/13] libmultipath: a generic multipath lib for block drivers
       [not found] <20260428111105.1778008-1-john.g.garry@oracle.com>
@ 2026-05-10 22:03 ` Sagi Grimberg
  2026-05-11  7:30   ` John Garry
  0 siblings, 1 reply; 2+ messages in thread
From: Sagi Grimberg @ 2026-05-10 22:03 UTC (permalink / raw)
  To: John Garry, hch, kbusch, axboe, martin.petersen, james.bottomley,
	hare, bmarzins, nilay
  Cc: jmeneghi, linux-nvme, linux-scsi, michael.christie, snitzer,
	dm-devel, linux-kernel



On 28/04/2026 14:10, John Garry wrote:
> libmultipath: a generic multipath lib for block drivers

This is very nice John.

>
> This series introduces libmultipath. It is essentially a refactoring of
> NVME multipath support, so we can have a common library to also support
> native SCSI multipath.
>
> Much of the code is taken directly from the NVMe multipath code. However,
> NVMe specifics are removed. A template structure is provided so the driver
> may provide callbacks for driver specifics, like ANA support for NVMe.
>
> Important new structures introduced include:
>
> - mpath_head
> These contain much of the multipath-specific functionality from
> nvme_ns_head, including a pointer to the gendisk structure and
> a path SRCU-based array.

I think it should be placed first in its parent struct as it holds the 
hot-path
head->srcu and head->list.

>
> - mpath_device
> This is the per-path structure, and contains much the same
> multipath-specific functionality in nvme_ns
>
> libmultipath provides functionality for path management, path selection,
> data path, and failover handling.
>
> Since the NVMe driver has some code in the sysfs and ioctl handling
> which iterate all multipath NSes, functions like mpath_call_for_device()
> are added to do the same per-path iteration.

very nice, overall seems fairly straight forward.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 00/13] libmultipath: a generic multipath lib for block drivers
  2026-05-10 22:03 ` [PATCH v2 00/13] libmultipath: a generic multipath lib for block drivers Sagi Grimberg
@ 2026-05-11  7:30   ` John Garry
  0 siblings, 0 replies; 2+ messages in thread
From: John Garry @ 2026-05-11  7:30 UTC (permalink / raw)
  To: Sagi Grimberg, hch, kbusch, axboe, martin.petersen,
	james.bottomley, hare, bmarzins, nilay
  Cc: jmeneghi, linux-nvme, linux-scsi, michael.christie, snitzer,
	dm-devel, linux-kernel

On 10/05/2026 23:03, Sagi Grimberg wrote:
>> Important new structures introduced include:
>>
>> - mpath_head
>> These contain much of the multipath-specific functionality from
>> nvme_ns_head, including a pointer to the gendisk structure and
>> a path SRCU-based array.
> 
> I think it should be placed first in its parent struct as it holds the 
> hot-path
> head->srcu and head->list.
>

Yeah, I did originally try this. However it becomes a pain for managing 
the lifecycle of the mpath_head and nvme_ns_head/scsi_mpath_head 
structures, especially for the scenarios like the delayed head removal.

However I can see again if I can make it work.

>>
>> - mpath_device
>> This is the per-path structure, and contains much the same
>> multipath-specific functionality in nvme_ns
>>
>> libmultipath provides functionality for path management, path selection,
>> data path, and failover handling.
>>
>> Since the NVMe driver has some code in the sysfs and ioctl handling
>> which iterate all multipath NSes, functions like mpath_call_for_device()
>> are added to do the same per-path iteration.
> 
> very nice, overall seems fairly straight forward.

thanks a lot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-11  7:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260428111105.1778008-1-john.g.garry@oracle.com>
2026-05-10 22:03 ` [PATCH v2 00/13] libmultipath: a generic multipath lib for block drivers Sagi Grimberg
2026-05-11  7:30   ` John Garry

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox