gs
summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorMitko Haralanov <mitko.haralanov@intel.com>2016-05-19 05:21:18 -0700
committerDoug Ledford <dledford@redhat.com>2016-05-26 11:23:10 -0400
commit9565c6a37a9d69f00e2a7dabbee2b4f6d20dc1ae (patch)
tree66bdf803ca3053a7d04216828849bb3979c76727 /Documentation
parenteea570788ebeb817a5ecb173dafc316779120081 (diff)
IB/hfi1: Fix an interval RB node reference count leak
Commit e88c9271d9f8 ("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: e88c9271d9f8 ("IB/hfi1: Fix buffer cache corner case which may cause corruption") Reviewed-by: Dean Luick <dean.luick@intel.com> Reviewed-by: Harish Chegondi <harish.chegondi@intel.com> Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'Documentation')