mpich
mpich copied to clipboard
ch4/mpidig: refactor update request status at matching
Pull Request Description
The source and tag fields in MPIDIG_REQUEST and MPIDI_PART_REQUEST are redudant to the MPI_SOURCE and MPI_TAG fields in the status, which needs to be set anyway. Both the source and tag are confirmed upon receiving the first active message thus they should be set then.
- remove MPIDIG_REQUEST(rreq, u.recv.{source,tag})and use rreq->status.{MPI_SOURCE,MPI_TAG} instead.
- set or update the status fields at the time of receiving the first am packet or at the time of matching.
- remove MPIR_TAG_MASK_ERROR_BITS in MPIDIG_match_request since we do not set tag error bits in MPIR-layer or MPIDIG-layer (even if error-bits are enabled).
This is a preparation/cleanup PR before we adding the feature allowing ch4-native netmod requests to transition into mpidig requests to use active messaging ability.
Removing extra variables/fields certainly simplifies the code.
[skip warnings]
Author Checklist
- [x] Provide Description Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
- [x] Commits Follow Good Practice
Commits are self-contained and do not do two things at once.
Commit message is of the form:
module: short descriptionCommit message explains what's in the commit. - [ ] Passes All Tests Whitespace checker. Warnings test. Additional tests via comments.
- [x] Contribution Agreement For non-Argonne authors, check contribution agreement. If necessary, request an explicit comment from your companies PR approval manager.
test:mpich/ch4/most ✔️
test:mpich/ch4/ofi/more
test:mpich/ch4/ofi/more