1. 26 May, 2016 1 commit
    • Mitko Haralanov's avatar
      IB/hfi1: Fix an interval RB node reference count leak · 9565c6a3
      Mitko Haralanov authored
      Commit e88c9271 ("IB/hfi1: Fix buffer cache corner case which
      may cause corruption") introduced a bug which may cause a reference
      count of a interval RB node to be leaked in the case where an SDMA
      transfer from that node completes at the same time as the node is
      being extended.
      
      If a node is being extended, it is first removed from the RB tree
      in order to be processed without the risk of an invalidation event
      removing the node at the same time.
      
      If a SDMA completion happens during that time, the completion handler
      will fail to find the node in the RB tree and, therefore, fail to
      correctly decrement its refcount. This leaves the node in the tree and
      its pages pinned for the duration of the user process.
      
      To prevent this from happening the io vector adds a reference to the
      RB node, which is used during the SDMA completion instead of looking
      up the node in the RB tree.
      
      This change adds a performance improvement as a side effect by avoiding
      the RB tree lookup.
      
      Fixes: e88c9271 ("IB/hfi1: Fix buffer cache corner case which may cause corruption")
      Reviewed-by: default avatarDean Luick <dean.luick@intel.com>
      Reviewed-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
      Signed-off-by: default avatarMitko Haralanov <mitko.haralanov@intel.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      9565c6a3
  2. 13 May, 2016 16 commits
  3. 12 May, 2016 11 commits
  4. 05 May, 2016 11 commits
  5. 29 Apr, 2016 1 commit