]> git.baikalelectronics.ru Git - kernel.git/commit
nvmet-tcp: enable optional queue idle period tracking
authorWunderlich, Mark <mark.wunderlich@intel.com>
Wed, 31 Mar 2021 21:38:30 +0000 (21:38 +0000)
committerChristoph Hellwig <hch@lst.de>
Fri, 2 Apr 2021 16:48:28 +0000 (18:48 +0200)
commitd4e01ed04d9271484de5d454788a2f337a5d2849
tree2284dfb950da75fcbfc7ffb7b7d72aae2445e5e7
parent47c787f929bf9f5d96cc44fc0a70cd2b2a62afa2
nvmet-tcp: enable optional queue idle period tracking

Add 'idle_poll_period_usecs' option used by io_work() to support
network devices enabled with advanced interrupt moderation
supporting a relaxed interrupt model. It was discovered that
such a NIC used on the target was unable to support initiator
connection establishment, caused by the existing io_work()
flow that immediately exits after a loop with no activity and
does not re-queue itself.

With this new option a queue is assigned a period of time
that no activity must occur in order to become 'idle'.  Until
the queue is idle the work item is requeued.

The new module option is defined as changeable making it
flexible for testing purposes.

The pre-existing legacy behavior is preserved when no module option
for idle_poll_period_usecs is specified.

Signed-off-by: Mark Wunderlich <mark.wunderlich@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/tcp.c