HFI1: use embedded kmalloc cache for req->tids (fixes AllReduce hang)
This commit is contained in:
@@ -1022,9 +1022,8 @@ int hfi1_user_sdma_process_request(void *private_data, struct iovec *iovec,
|
|||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto free_req;
|
goto free_req;
|
||||||
}
|
}
|
||||||
//req->tids = kmalloc_cache_alloc(&tids_cache,
|
req->tids = kmalloc_cache_alloc(&tids_cache,
|
||||||
// sizeof(*req->tids) * MAX_TID_PAIR_ENTRIES);
|
sizeof(*req->tids) * MAX_TID_PAIR_ENTRIES);
|
||||||
req->tids = kcalloc(ntids, sizeof(*req->tids), GFP_KERNEL);
|
|
||||||
if (!req->tids) {
|
if (!req->tids) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto free_req;
|
goto free_req;
|
||||||
@@ -2068,8 +2067,7 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
|
|||||||
#endif /* __HFI1_ORIG__ */
|
#endif /* __HFI1_ORIG__ */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//kmalloc_cache_free(&tids_cache, req->tids);
|
kmalloc_cache_free(req->tids);
|
||||||
kfree(req->tids);
|
|
||||||
clear_bit(req->info.comp_idx, req->pq->req_in_use);
|
clear_bit(req->info.comp_idx, req->pq->req_in_use);
|
||||||
hfi1_cdbg(AIOWRITE, "-");
|
hfi1_cdbg(AIOWRITE, "-");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user