1. 11 Mar, 2010 1 commit
    • Eli Cohen's avatar
      IPoIB: Fix TX queue lockup with mixed UD/CM traffic · f0dc117a
      Eli Cohen authored
      The IPoIB UD QP reports send completions to priv->send_cq, which is
      usually left unarmed; it only gets armed when the number of
      outstanding send requests reaches the size of the TX queue. This
      arming is done only in the send path for the UD QP.  However, when
      sending CM packets, the net queue may be stopped for the same reasons
      but no measures are taken to recover the UD path from a lockup.
      
      Consider this scenario: a host sends high rate of both CM and UD
      packets, with a TX queue length of N.  If at some time the number of
      outstanding UD packets is more than N/2 and the overall outstanding
      packets is N-1, and CM sends a packet (making the number of
      outstanding sends equal N), the TX queue will be stopped.  When all
      the CM packets complete, the number of outstanding packets will still
      be higher than N/2 so the TX queue will not be restarted.
      
      Fix this by calling ib_req_notify_cq() when the queue is stopped in
      the CM path.
      Signed-off-by: default avatarEli Cohen <eli@mellanox.co.il>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      f0dc117a
  2. 08 Mar, 2010 1 commit
  3. 07 Mar, 2010 38 commits