[PATCHv2] nvme-tcp: Implement recvmsg() receive flow

Sagi Grimberg sagi at grimberg.me
Mon Dec 1 09:49:38 PST 2025


>> There is TX work that may be pending as well, IIRC there is an 
>> assumption that io_work will NOT return if there is any TX work
> > pending (we've seen stalls in the past due to issues like that).>
> Hmm.
> But I've seen the opposite; the current io_work prioritizes TX
> over RX, so a 'data_ready' callback will trigger TX first, letting
> the RX data to stew for a bit before the TX data has been sent.

I wouldn't consider that prioritizing TX. the fact that it goes first is 
because
you want to send request to the ctrl to go off and work while you 
receive data.

> Maybe we should be looking into splitting TX and RX paths after all...

If both TX/RX remain kthreads I don't see how it will help performance.
But if someone provides data that shows otherwise, we can do that.



More information about the Linux-nvme mailing list