[PATCH v15 06/20] nvme-tcp: Add DDP data-path

Sagi Grimberg sagi at grimberg.me
Tue Sep 19 00:04:08 PDT 2023


>>> @@ -1235,6 +1330,9 @@ static int nvme_tcp_try_send_cmd_pdu(struct nvme_tcp_request *req)
>>>        else
>>>                msg.msg_flags |= MSG_EOR;
>>>
>>> +     if (test_bit(NVME_TCP_Q_OFF_DDP, &queue->flags))
>>> +             nvme_tcp_setup_ddp(queue, blk_mq_rq_from_pdu(req));
>>
>> Didn't we agree that setup_ddp should move to setup time and
>> not send time?
> 
> We believe we haven't reached a conclusion last time [1].
> 
> Moving the setup_ddp() call earlier at setup time is less efficient (up
> to ~15% less IOPS) when it does the work on a different CPU.
> 
> 1: https://lore.kernel.org/all/253h6oxvlwd.fsf@nvidia.com/

Can you please explain why? sk_incoming_cpu is updated from the network
recv path while you are arguing that the timing matters before you even
send the pdu. I don't understand why should that matter.



More information about the Linux-nvme mailing list