]> www.infradead.org Git - users/jedix/linux-maple.git/commit
IB: Add RNR timer workaround for PSIF
authorSantosh Shilimkar <santosh.shilimkar@oracle.com>
Sat, 18 Jun 2016 20:06:29 +0000 (13:06 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Jul 2016 08:01:16 +0000 (01:01 -0700)
commit40429d5d3e84656fdc8d2cedc9c7169ec3d682ac
treecb3ecc97a978df217d490fd9659ecc990bf590ba
parent5b8d57672a88fc33b279781ef7c684d7a2338cfb
IB: Add RNR timer workaround for PSIF

The RNR NAK Retry timer on Titan and Sonoma 1&2 IB subsystems runs 500
times faster than desired. This means that retries are started a lot
sooner than they should.

The software workaround is bit involved and intrusive because it needs
to work in mixed HCA environments. It uses CM protocol to detect the
involvement of the offending IB requestor and then enables the
workaround in the peer responder. To keep the workaround flag
persistent, ib_qp verbs need to carry the flag which impacts
IB core kABI which is wrapped under __GENKSYMS__.

The workaround matches the desired RNR NAK Retry timer value when the
encodings 1 to 14 (decimal) are supplied. For encodings larger than 14
and for zero, the work-around will set the largest possible RNR NAK
Timer value for the offending requestor, which is 1,31 ms.

Thanks to Trivino, Haakon for updates and wide range of testing for
kernel as well as userland with mixed HCA configurations.

Orabug: 23633926

Reviewed-by Yuval Shaia <yuval.shaia@oracle.com>
Reviewed-by: Håkon Bugge <haakon.bugge@oracle.com>
Reviewed-by: David Brean <david.brean@oracle.com>
Tested-by: Francisco Triviño García <francisco.trivino@oracle.com>
Signed-off-by: Francisco Triviño García <francisco.trivino@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
drivers/infiniband/core/cm.c
drivers/infiniband/core/core_priv.h
drivers/infiniband/core/uverbs_cmd.c
drivers/infiniband/core/verbs.c
include/rdma/ib_verbs.h