Skip to content
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

04 of 10 LNX series - update get_msg()/get_tag() to take fi_peer_match structure #10028

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

amirshehataornl
Copy link
Contributor

Proposed updates the SRX peer callbacks

Signed-off-by: Amir Shehata shehataa@ornl.gov

@amirshehataornl amirshehataornl force-pushed the 03_lnx_series_rdma_updates branch 2 times, most recently from 401b3fb to 591840b Compare May 9, 2024 21:30
When checking fabric attributes with ofi_check_fabric_attr() make sure to
consider provider exclusion.

When checking to see if a provider name is given, only consider ones which
are not excluded using the '^' character.

Signed-off-by: Amir Shehata <shehataa@ornl.gov>
It is not efficient to do a reverse lookup on the AV table when a message
is received. Some providers do not store the fi_addr_t associated with the
peer in the header passed on the wire. And it is not practical to require
providers to add that to wire header, as it would break backwards
compatibility.

In order to handle this case, an address matching callback is added to the
peer_srx.peer_ops structure. This allows the provider receiving the
message to register an address matching callback. This callback is called
by the owner provider to match an fi_addr_t with provider specific address
in the message received.

The callback allows the receiving provider to do an O(1) index into the AV
table to lookup the address of the peer, and then compare that with the
source address in the received message.

As part of this change provider specific address information needs to be
passed to the owner provider, which the owner will need to give back to the
receiving provider, when it attempts to do address matching.

Update the SHM and LINKx providers to conform with the API changes

Signed-off-by: Amir Shehata <shehataa@ornl.gov>
Add a new structure fi_peer_match to collect the parameters which need
to be passed to the get_msg and get_tag functions.

Update the util_get_tag() and util_get_msg() function callbacks.
Compilation gives a warning but not failing. This causes memory
corruption when the callbacks are called.

Signed-off-by: Amir Shehata <shehataa@ornl.gov>
@amirshehataornl amirshehataornl changed the title 03 lnx series rdma updates 03 of 09 LNX series - API updates to fi_ops_srx_peer and fi_ops_srx_owner May 16, 2024
@amirshehataornl amirshehataornl changed the title 03 of 09 LNX series - API updates to fi_ops_srx_peer and fi_ops_srx_owner 04 of 10 LNX series - update get_msg()/get_tag() to take fi_peer_match structure May 16, 2024
@j-xiong
Copy link
Contributor

j-xiong commented May 17, 2024

See the comment for #10039. These two commits need to swap order, or merge into a single one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants