[PATCH v4 01/20] nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP
Prabhakar Kushwaha
prabhakar.pkin at gmail.com
Mon Jul 12 07:39:39 PDT 2021
Hi Christoph,
On Mon, Jul 5, 2021 at 8:40 PM Shai Malin <malin1024 at gmail.com> wrote:
>
> On Thu, 1 Jul 2021 at 16:34, Christoph Hellwig <hch at lst.de> wrote:
> >
[snip]
>
> >
> > > +static struct nvmf_transport_ops nvme_tcp_ofld_transport = {
> > > + .name = "tcp_offload",
> > > + .module = THIS_MODULE,
> > > + .required_opts = NVMF_OPT_TRADDR,
> > > + .allowed_opts = NVMF_OPT_TRSVCID | NVMF_OPT_NR_WRITE_QUEUES |
> > > + NVMF_OPT_HOST_TRADDR | NVMF_OPT_CTRL_LOSS_TMO |
> > > + NVMF_OPT_RECONNECT_DELAY | NVMF_OPT_HDR_DIGEST |
> > > + NVMF_OPT_DATA_DIGEST | NVMF_OPT_NR_POLL_QUEUES |
> > > + NVMF_OPT_TOS | NVMF_OPT_HOST_IFACE,
> > > +};
> > > +
> > > +static int __init nvme_tcp_ofld_init_module(void)
> > > +{
> > > + nvmf_register_transport(&nvme_tcp_ofld_transport);
> > > +
> > > + return 0;
> > > +}
> > > +
> > > +static void __exit nvme_tcp_ofld_cleanup_module(void)
> > > +{
> > > + nvmf_unregister_transport(&nvme_tcp_ofld_transport);
> > > +}
> >
> > Looking at the final result this doesn't do much. Assuming we want
> > to support these kinds of whacky offloads (which I'd rather not do),
> > the proper way would be to allow registering multiple transport_ops
> > structures for a given name rather adding an indirection that duplicates
> > a whole lot of code.
>
> In that case, would you prefer that we invoke the tcp-offload from
> within the tcp flow?
> Should it be with the same transport name (“tcp”) or with a different
> transport name (“tcp_offload”)?
>
> Also, would you prefer that we register the offload device driver
> directly to blk_mq layer or through the tcp-offload layer?
>
I hope you got some time to look into the above queries.
We would appreciate your feedback in order to finalize the design.
--pk
More information about the Linux-nvme
mailing list