linux_dsm_epyc7002/drivers/nvme/host
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
..
core.c nvme: flush scan work on passthrough commands 2020-05-09 16:18:36 -06:00
fabrics.c nvme-fabrics: Use scnprintf() for avoiding potential buffer overflow 2020-03-26 04:51:55 +09:00
fabrics.h
fault_inject.c
fc.c nvme-fc: avoid gcc-10 zero-length-bounds warning 2020-05-09 16:18:36 -06:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme: hwmon: switch to use <linux/units.h> helpers 2020-01-31 10:30:40 -08:00
Kconfig nvme: Don't deter users from enabling hwmon support 2020-03-26 04:45:25 +09:00
lightnvm.c
Makefile
multipath.c nvme-multipath: set bdi capabilities once 2020-05-09 16:18:35 -06:00
nvme.h nvme: consolidate chunk_sectors settings 2020-05-09 16:18:35 -06:00
pci.c nvme-pci: align io queue count with allocted nvme_queue in nvme_probe 2020-05-09 16:18:36 -06:00
rdma.c block-5.7-2020-04-10 2020-04-10 10:06:54 -07:00
tcp.c nvme-tcp: try to send request in queue_rq context 2020-05-09 16:18:36 -06:00
trace.c
trace.h