-
Notifications
You must be signed in to change notification settings - Fork 499
prov/efa: Cleanup EP/CQ #12167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
prov/efa: Cleanup EP/CQ #12167
Changes from all commits
b8734a7
ff68eb6
ce9e0b7
93740b9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| /* SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0-only */ | ||
| /* SPDX-FileCopyrightText: Copyright Amazon.com, Inc. or its affiliates. All rights reserved. */ | ||
|
|
||
| #ifndef EFA_DIRECT_EP_H | ||
| #define EFA_DIRECT_EP_H | ||
|
|
||
| #include "efa_base_ep.h" | ||
|
|
||
| /** | ||
| * @brief EFA direct endpoint structure | ||
| * | ||
| * Wraps efa_base_ep as first member (for castability) and adds | ||
| * fields that are only used by the efa-direct path. | ||
| */ | ||
| struct efa_direct_ep { | ||
| struct efa_base_ep base_ep; | ||
|
|
||
| struct ofi_bufpool *ope_pool; /**< pool for efa_direct_ope */ | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Have a comment here that we make the ope_pool/ope_list additional for efa_direct_ep because of a need to track the outstanding operations that still reference MRs. This should be a temporary addition and finally removed or moved to the efa_base_ep when we have a unified approach to make it cover both efa and efa-direct
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thinking about it more, I think we should keep ope_pool and ope_list in the base_ep and make efa_rdm_ep use them. efa_rdm_ep also have a ope_pool which is the same type. efa_rdm_ep has separate txe_list and rxe_list but they are only used for final cleanup purpose. There is no reason we cannot combine them into a single ope_list and scan it once and clean up based on the ope type accordingly |
||
| struct dlist_entry ope_list; /**< list of outstanding ops */ | ||
| }; | ||
|
|
||
| static_assert(offsetof(struct efa_direct_ep, base_ep) == 0, | ||
| "efa_base_ep must be first member of efa_direct_ep for container_of safety"); | ||
|
|
||
| #endif /* EFA_DIRECT_EP_H */ | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should have been part of your first commit