diff options
author | Bart Van Assche <bvanassche@acm.org> | 2014-10-06 11:14:36 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-11-12 06:05:24 -0500 |
commit | d92c0da71a35dfddccca7bfa932829504311359e (patch) | |
tree | 84b87ede947430e8b53b33bf99c349c99243cb9d /Documentation | |
parent | 77f2c1a40e6fed202d08c8ec0bdca36a76dab368 (diff) |
IB/srp: Add multichannel support
Improve performance by using multiple RDMA/RC channels per SCSI
host for communication with an SRP target. About the
implementation:
- Introduce a loop over all channels in the code that uses
target->ch.
- Set the SRP_MULTICHAN_MULTI flag during login for the creation
of the second and subsequent channels.
- RDMA completion vectors are chosen such that RDMA completion
interrupts are handled by the CPU socket that submitted the I/O
request. As one can see in this patch it has been assumed if a
system contains n CPU sockets and m RDMA completion vectors
have been assigned to an RDMA HCA that IRQ affinity has been
configured such that completion vectors [i*m/n..(i+1)*m/n) are
bound to CPU socket i with 0 <= i < n.
- Modify srp_free_ch_ib() and srp_free_req_data() such that it
becomes safe to invoke these functions after the corresponding
allocation function failed.
- Add a ch_count sysfs attribute per target port.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/stable/sysfs-driver-ib_srp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/Documentation/ABI/stable/sysfs-driver-ib_srp b/Documentation/ABI/stable/sysfs-driver-ib_srp index b9688de8455b..7049a2b50359 100644 --- a/Documentation/ABI/stable/sysfs-driver-ib_srp +++ b/Documentation/ABI/stable/sysfs-driver-ib_srp | |||
@@ -55,12 +55,12 @@ Description: Interface for making ib_srp connect to a new target. | |||
55 | only safe with partial memory descriptor list support enabled | 55 | only safe with partial memory descriptor list support enabled |
56 | (allow_ext_sg=1). | 56 | (allow_ext_sg=1). |
57 | * comp_vector, a number in the range 0..n-1 specifying the | 57 | * comp_vector, a number in the range 0..n-1 specifying the |
58 | MSI-X completion vector. Some HCA's allocate multiple (n) | 58 | MSI-X completion vector of the first RDMA channel. Some |
59 | MSI-X vectors per HCA port. If the IRQ affinity masks of | 59 | HCA's allocate multiple (n) MSI-X vectors per HCA port. If |
60 | these interrupts have been configured such that each MSI-X | 60 | the IRQ affinity masks of these interrupts have been |
61 | interrupt is handled by a different CPU then the comp_vector | 61 | configured such that each MSI-X interrupt is handled by a |
62 | parameter can be used to spread the SRP completion workload | 62 | different CPU then the comp_vector parameter can be used to |
63 | over multiple CPU's. | 63 | spread the SRP completion workload over multiple CPU's. |
64 | * tl_retry_count, a number in the range 2..7 specifying the | 64 | * tl_retry_count, a number in the range 2..7 specifying the |
65 | IB RC retry count. | 65 | IB RC retry count. |
66 | * queue_size, the maximum number of commands that the | 66 | * queue_size, the maximum number of commands that the |
@@ -88,6 +88,13 @@ Description: Whether ib_srp is allowed to include a partial memory | |||
88 | descriptor list in an SRP_CMD when communicating with an SRP | 88 | descriptor list in an SRP_CMD when communicating with an SRP |
89 | target. | 89 | target. |
90 | 90 | ||
91 | What: /sys/class/scsi_host/host<n>/ch_count | ||
92 | Date: April 1, 2015 | ||
93 | KernelVersion: 3.19 | ||
94 | Contact: linux-rdma@vger.kernel.org | ||
95 | Description: Number of RDMA channels used for communication with the SRP | ||
96 | target. | ||
97 | |||
91 | What: /sys/class/scsi_host/host<n>/cmd_sg_entries | 98 | What: /sys/class/scsi_host/host<n>/cmd_sg_entries |
92 | Date: May 19, 2011 | 99 | Date: May 19, 2011 |
93 | KernelVersion: 2.6.39 | 100 | KernelVersion: 2.6.39 |
@@ -95,6 +102,12 @@ Contact: linux-rdma@vger.kernel.org | |||
95 | Description: Maximum number of data buffer descriptors that may be sent to | 102 | Description: Maximum number of data buffer descriptors that may be sent to |
96 | the target in a single SRP_CMD request. | 103 | the target in a single SRP_CMD request. |
97 | 104 | ||
105 | What: /sys/class/scsi_host/host<n>/comp_vector | ||
106 | Date: September 2, 2013 | ||
107 | KernelVersion: 3.11 | ||
108 | Contact: linux-rdma@vger.kernel.org | ||
109 | Description: Completion vector used for the first RDMA channel. | ||
110 | |||
98 | What: /sys/class/scsi_host/host<n>/dgid | 111 | What: /sys/class/scsi_host/host<n>/dgid |
99 | Date: June 17, 2006 | 112 | Date: June 17, 2006 |
100 | KernelVersion: 2.6.17 | 113 | KernelVersion: 2.6.17 |