[PATCH v24 01/20] net: Introduce direct data placement tcp offload

Sagi Grimberg sagi at grimberg.me
Sun Apr 28 01:15:38 PDT 2024



On 26/04/2024 10:21, Aurelien Aptel wrote:
> Hi Sagi,
>
> Sagi Grimberg <sagi at grimberg.me> writes:
>>> +     config->io_cpu = sk->sk_incoming_cpu;
>>> +     ret = netdev->netdev_ops->ulp_ddp_ops->sk_add(netdev, sk, config);
>> Still don't understand why you need the io_cpu config if you are passing
>> the sk to the driver...
> With our HW we cannot move the offload queues to a different CPU without
> destroying and recreating the offload resources on the new CPU.

This is not simply a steering rule that can be overwritten at any point?

>
> Since the connection is created from a different CPU then the io queue
> thread, we cannot predict which CPU we should create our offload context
> on.
>
> Ideally, io_cpu should be set to nvme_queue->io_cpu or it should be removed
> and the socket should be offloaded from the io thread. What do you
> prefer?

I was simply referring to the fact that you set config->io_cpu from 
sk->sk_incoming_cpu
and then you pass sk (and config) to .sk_add, so why does this 
assignment need to
exist here and not below the interface down at the driver?



More information about the Linux-nvme mailing list