Several refactors regarding WR indices #334
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use CQE QP number
Perftest assumes that all WQEs are created with the QP number as their
wr_id. This creates a situation where WQEs do not have unique IDs. As a
result, in various areas of the code, wr_id field from wc is used as the
index to the relevant QP. The usage of wr_id is replaced with the
actual QP index that also exists in the wc struct.
Use unique WR IDs
While setting send and receive WQEs, assiging to each WQE a unique wr_id
instead of qp index. This will allow the user to detect which work
request got completed.
Perftest: Fix address cycling bug in local address increment logic
The increase_loc_addr() function manages circular buffer addressing.
One of the input argument is rcnt, which represents the number of
post_send/post_receive operations that were called per QP. Based on
rcnt, it internally calculates the local address for the next operation.
When setting up receive WQEs, this function is being called with the
index of the current operation instead of the amount that was already
called. This incorrect indexing caused the last WQE in the buffer to
incorrectly point to the first WQE's address in the QP.
This bug affects the cyclic address calculation used for cache-efficient
data placement. The fix ensures proper address cycling by passing the
correct index to the function.