Sagi Grimberg
db5ad6b7f8
nvme-tcp: try to send request in queue_rq context
...
Today, nvme-tcp automatically schedules a send request
to a workqueue context, which is 1 more than we'd need
in case the socket buffer is wide open.
However, because we have async send activity (as a result
of r2t, or write_space callbacks), we need to synchronize
sends from possibly multiple contexts (ideally all running
on the same cpu though).
Thus, we only try to send directly from queue_rq in cases:
1. the send_list is empty
2. we can send it synchronously (i.e. not from the RX path)
3. we run on the same cpu as the queue->io_cpu to avoid
contention on the send operation.
Proposed-by: Mark Wunderlich <mark.wunderlich@intel.com >
Signed-off-by: Mark Wunderlich <mark.wunderlich@intel.com >
Signed-off-by: Sagi Grimberg <sagi@grimberg.me >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2020-05-09 16:18:36 -06:00
..
2020-04-10 09:52:15 -07:00
2020-04-01 08:03:28 +02:00
2020-04-22 10:47:39 -06:00
2020-03-25 11:50:48 +01:00
2020-05-09 16:15:13 -06:00
2020-05-09 16:13:58 -06:00
2020-04-03 15:05:35 -07:00
2020-05-04 10:13:42 -06:00
2020-04-10 17:57:48 -07:00
2020-04-13 12:20:07 -07:00
2020-04-05 09:24:58 +02:00
2020-04-06 10:14:39 -07:00
2020-04-10 11:32:22 +02:00
2020-04-08 21:35:29 -07:00
2020-04-02 19:15:03 -07:00
2020-03-25 08:35:03 +09:00
2020-04-10 15:36:22 -07:00
2020-04-08 09:14:34 +10:00
2020-03-30 16:40:08 -07:00
2020-03-25 11:50:48 +01:00
2020-04-03 13:22:40 -07:00
2020-04-14 08:32:15 +02:00
2020-04-04 10:27:00 -07:00
2020-04-16 15:40:02 +10:00
2020-04-01 15:18:42 -07:00
2020-04-14 11:58:04 -07:00
2020-04-18 10:13:07 -07:00
2020-03-25 22:30:46 -07:00
2020-03-24 13:45:24 +01:00
2020-04-15 18:27:31 +02:00
2020-03-29 10:35:50 +02:00
2020-05-04 10:13:42 -06:00
2020-03-30 16:40:08 -07:00
2020-04-08 21:25:49 -07:00
2020-04-01 18:18:18 -07:00
2020-04-07 20:20:12 -07:00
2020-03-27 11:33:27 +01:00
2020-04-17 08:59:55 +01:00
2020-04-16 13:52:31 -07:00
2020-04-06 23:12:08 +02:00
2020-03-30 11:43:51 -07:00
2020-04-03 13:22:40 -07:00
2020-04-25 09:45:44 -06:00
2020-03-30 15:05:01 -07:00
2020-04-03 15:05:35 -07:00
2020-03-26 22:40:47 -04:00
2020-03-30 07:35:28 +01:00
2020-04-08 10:51:53 -07:00
2020-03-31 16:13:09 -07:00
2020-03-24 13:42:44 +01:00
2020-05-09 16:15:13 -06:00
2020-04-16 14:52:29 -07:00
2020-03-25 18:58:11 -07:00
2020-04-03 14:25:02 -07:00
2020-04-08 21:03:40 -07:00
2020-05-09 16:18:36 -06:00
2020-03-25 19:23:49 +01:00
2020-04-17 08:31:34 -05:00
2020-04-13 16:14:55 +05:30
2020-04-05 22:05:23 +02:00
2020-04-08 11:00:00 -07:00
2020-03-31 18:48:22 +02:00
2020-03-31 10:05:01 -07:00
2020-04-03 14:25:02 -07:00
2020-04-04 10:27:00 -07:00
2020-04-16 15:00:57 -07:00
2020-04-10 15:36:22 -07:00
2020-03-30 16:40:08 -07:00
2020-04-03 00:09:59 +11:00
2020-03-30 11:16:38 -07:00
2020-04-03 21:41:42 +02:00
2020-03-30 14:58:26 -07:00
2020-04-03 10:47:21 -07:00
2020-04-07 19:48:52 -07:00
2020-04-20 11:32:59 -06:00
2020-05-09 16:18:34 -06:00
2020-04-09 10:51:30 -07:00
2020-04-03 13:22:40 -07:00
2020-04-02 15:50:04 -07:00
2020-04-10 15:36:21 -07:00
2020-04-13 14:03:20 -04:00
2020-04-03 15:05:35 -07:00
2020-04-07 20:00:16 -07:00
2020-04-05 11:12:59 -07:00
2020-04-02 17:03:53 -07:00
2020-04-02 10:41:40 -04:00
2020-04-01 13:51:51 -06:00
2020-04-02 10:41:40 -04:00
2020-04-07 20:24:34 -07:00
2020-04-08 10:51:53 -07:00
2020-04-08 11:18:38 +02:00
2020-04-17 10:35:17 -07:00
2020-04-03 13:12:26 -07:00
2020-04-08 10:51:53 -07:00
2020-04-08 10:51:53 -07:00