[PATCH] nvme-tcp: defer TLS inline send to io_work

Keith Busch kbusch at kernel.org
Mon Aug 24 19:57:50 PDT 2026


On Wed, Aug 19, 2026 at 08:50:00AM +0800, Xixin Liu wrote:
> blk_mq holds set->srcu while queuing and running requests.  The kTLS
> software send path takes ctx->tx_lock.  lockdep knows that tx_lock
> nests under elevator_lock which then waits on srcu, so an inline
> send from that path under TLS triggers circular locking.
> 
> Skip the inline send optimization for TLS queues so the send runs
> from the workqueue instead.  The same workqueue already retries TLS
> sends on write-space notifications.  Plain TCP keeps the inline path.

Thanks, applied to nvme-7.3.

For future, could you please send new patches as new threads separate
from the discussion that spawned them? You can use "Link:" tags for
prior discussion if you want to keep it, but this interleaving and
changing subjects in the same thread is a bit unpleasant for tracking
purposes.



More information about the Linux-nvme mailing list