1. 15 Dec, 2021 2 commits
  2. 14 Dec, 2021 1 commit
    • Yangyang Li's avatar
      RDMA/hns: Fix RNR retransmission issue for HIP08 · 4ad81814
      Yangyang Li authored
      Due to the discrete nature of the HIP08 timer unit, a requester might
      finish the timeout period sooner, in elapsed real time, than its responder
      does, even when both sides share the identical RNR timeout length included
      in the RNR Nak packet and the responder indeed starts the timing prior to
      the requester. Furthermore, if a 'providential' resend packet arrived
      before the responder's timeout period expired, the responder is certainly
      entitled to drop the packet silently in the light of IB protocol.
      
      To address this problem, our team made good use of certain hardware facts:
      
      1) The timing resolution regards the transmission arrangements is 1
         microsecond, e.g. if cq_period field is set to 3, it would be
         interpreted as 3 microsecond by hardware
      
      2) A QPC field shall inform the hardware how many timing unit (ticks)
         constitutes a full microsecond, which, by default, is 1000
      
      3) It takes 14ns for the processor to handle a packet in the buffer, so
         the RNR timeout length of 10ns would ensure our processing mechanism is
         disabled during the entire timeout period and the packet won't be
         dropped silently
      
      To achieve (3), we permanently set the QPC field mentioned in (2) to zero
      which nominally indicates every time tick is equivalent to a microsecond
      in wall-clock time; now, a RNR timeout period at face value of 10 would
      only last 10 ticks, which is 10ns in wall-clock time.
      
      It's worth noting that we adapt the driver by magnifying certain
      configuration parameters(cq_period, eq_period and ack_timeout)by 1000
      given the user assumes the configuring timing unit to be microseconds.
      
      Also, this particular improvisation is only deployed on HIP08 since other
      hardware has already solved this issue.
      
      Fixes: cfc85f3e ("RDMA/hns: Add profile support for hip08 driver")
      Link: https://lore.kernel.org/r/20211209140655.49493-1-liangwenpeng@huawei.comSigned-off-by: default avatarYangyang Li <liyangyang20@huawei.com>
      Signed-off-by: default avatarWenpeng Liang <liangwenpeng@huawei.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      4ad81814
  3. 12 Dec, 2021 14 commits
  4. 11 Dec, 2021 23 commits