[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