-
Notifications
You must be signed in to change notification settings - Fork 382
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
prov/tcp: Set FI_MULTI_RECV for last completed RX slice
When FI_MULTI_RECV is enabled for an RX buffer, the last completed slice of the RX buffer should have FI_MULTI_RECV set in the corresponding CQE. Currently TCP provider assumes the last slice of the RX buffer will get completed last and sets FI_MULTI_RECV flag when the last slice is used. Completions can get out of order with multiple connections and varied payload sizes using the same RX buffer. Last slice will not always complete last. To make sure the last completed RX buffer slice has FI_MULTI_RECV set in the CQE, use a reference counter to track outstanding slices. Count is initialized to 1 when the RX buffer is first posted and incrememted on every slice allocation. Upon completion, count is decremented. When it reaches 0, FI_MULTI_RECV is set for that CQE. v2 - Minimize impact to non-multi-recv SRX code. v3 - Fix completion path, set FI_MULTI_RECV if mrecv is NULL and recv_entry is XNET_MULTI_RECV. Signed-off-by: Chien Tin Tung <chien.tin.tung@intel.com>
- Loading branch information
Chien Tin Tung
committed
Oct 11, 2023
1 parent
041180e
commit b3d0724
Showing
4 changed files
with
41 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters