Re: [PATCH] nvme-tcp: defer TLS inline send to io_work
From: Keith Busch
Date: Mon Aug 24 2026 - 22:57:56 EST
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.