• Bart Van Assche's avatar
    IB/srp: Add multichannel support · d92c0da7
    Bart Van Assche authored
    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: default avatarBart Van Assche <bvanassche@acm.org>
    Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    d92c0da7
ib_srp.c 93.2 KB