[RFC v1 0/3] Unifying fabrics drivers
Sagi Grimberg
sagi at grimberg.me
Tue Mar 7 01:26:12 PST 2023
> The two fabrics rdma and tcp share a lot of common code. This here is my attempt
> to consolidate the common code.
>
> I've picked just one function (setup admin queue) for this RFC to get a feeling
> and feedback if this is a valid approach or if people hate it. I've left out fc
> for the time being because it differs too much two the other two drivers.
>
> I've tested quickly tcp, rdma is only compile tested.
I think we should make all transports to unify setup/teardown sequences
(i.e. including pcie and fc). Otherwise we are not gaining much.
It will help if we make the ops higher level like
ops.setup_transport(ctrl)
ops.alloc_admin_queue(ctrl)
ops.start_admin_queue(ctrl)
ops.stop_admin_queue(ctrl)
ops.free_admin_queue(ctrl)
ops.alloc_io_queues(ctrl)
ops.start_io_queues(ctrl)
ops.stop_io_queues(ctrl)
ops.free_io_queues(ctrl)
The init/deinit can be folded to alloc/free I think.
This is indeed a much larger effort, but I don't know what
this unification of rdma/tcp buys us really...
More information about the Linux-nvme
mailing list