All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Some datapath optimizations for nvme-tcp host driver
@ 2020-06-19  0:30 Sagi Grimberg
  2020-06-19  0:30 ` [PATCH 1/3] nvme-tcp: have queue prod/cons send list become a llist Sagi Grimberg
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Sagi Grimberg @ 2020-06-19  0:30 UTC (permalink / raw)
  To: linux-nvme, Christoph Hellwig, Keith Busch
  Cc: Anil Vasudevan, Mark Wunderlich

Hey, some datapath micro-optimizations for nvme-tcp host driver.

Optimizations are:
1. make requests list for send operations a lockless list, and have the
   I/O thread pull from it to a local send_list in batches
2. Implement request plugging information
3. optimize msg flags to signal the stack more is coming if
   some more requests are expected to be sent soon.

A simple benchmark reveals a nice win in iops in high qd (32) with
batching applied (8 requests per batch). Still QD=1 latency is not
impacted.

Tested on ConnectX-4 device (LRO disabled).
CPU: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz

Baseline:
========
QDepth/Batch    | IOPs [k] 
--------------------------
1/1             | 43.2
32/8            | 106

with patchset:
=============
QDepth/Batch    | IOPs [k]  
--------------------------
1/1             | 43.3
32/8            | 165

Do note that in an alternative setup (different NIC, faster CPU) the
tests did not show a noticable difference, but overall the optimizations
do make the datapath somewhat more efficient.

Sagi Grimberg (3):
  nvme-tcp: have queue prod/cons send list become a llist
  nvme-tcp: leverage request plugging
  nvme-tcp: optimize network stack with setting msg flags according to
    batch size

 drivers/nvme/host/tcp.c | 78 +++++++++++++++++++++++++++++++----------
 1 file changed, 60 insertions(+), 18 deletions(-)

-- 
2.25.1


_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-24 16:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-19  0:30 [PATCH 0/3] Some datapath optimizations for nvme-tcp host driver Sagi Grimberg
2020-06-19  0:30 ` [PATCH 1/3] nvme-tcp: have queue prod/cons send list become a llist Sagi Grimberg
2020-06-24 16:48   ` Christoph Hellwig
2020-06-19  0:30 ` [PATCH 2/3] nvme-tcp: leverage request plugging Sagi Grimberg
2020-06-19  0:30 ` [PATCH 3/3] nvme-tcp: optimize network stack with setting msg flags according to batch size Sagi Grimberg
2020-06-24 16:51 ` [PATCH 0/3] Some datapath optimizations for nvme-tcp host driver Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.