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

prov/rxd: replacing statically allocated arrays with ofi index_map and ofi indexer. #6110

Merged
merged 3 commits into from
Aug 3, 2020

Conversation

nikhilnanal
Copy link
Contributor

@nikhilnanal nikhilnanal commented Jul 21, 2020

  • replaced peers array in rxd_ep to an index_map based implementation.
  • replaced fi_addr_table in rxd_av to an indexer based implementation.

@nikhilnanal nikhilnanal changed the title Feat dyn av4 prov/rxd: replacing statically allocated arrays with ofi index_map and ofi indexer. Jul 21, 2020
prov/rxd/src/rxd.h Show resolved Hide resolved
prov/rxd/src/rxd_ep.c Outdated Show resolved Hide resolved
prov/rxd/src/rxd_ep.c Show resolved Hide resolved
prov/rxd/src/rxd_atomic.c Show resolved Hide resolved
prov/rxd/src/rxd_atomic.c Show resolved Hide resolved
prov/rxd/src/rxd_av.c Outdated Show resolved Hide resolved
prov/rxd/src/rxd_msg.c Outdated Show resolved Hide resolved
@nikhilnanal
Copy link
Contributor Author

force pushed after updating some of the review comments

@shefty
Copy link
Member

shefty commented Jul 22, 2020

Please check the changes and verify that fabtests pass prior to re-pushing. I didn't see anything specific that stood out reading through the latest changes, but something is off somewhere looking at CI results.

The peers array in the endpoint structure is dynamically
allocated but is not extensible. Replacing this array
with an ofi_index map which will provide the capability
to increase the number of peers upto 1 million peers
without increasing static memory consumption.

Signed-off-by: Nikhil Nanal <nikhil.nanal@intel.com>
The fi_addr_table is currently implemented as a
array of fixed size. Changing this to an ofi_indexer
based implementation to provide extensibility upto
1 million entries and insertion to first available
location.

Signed-off-by: Nikhil Nanal <nikhil.nanal@intel.com>
Replacing the fixed size array of rxd_addr_table in the
rxd_av to using an indexer (rxdaddr_dg_indexer) to store addresses
stored by the underlying dg_provider and an index map (rxdaddr_fi_idm)
to store the fi_addrs used by the application.

The indexer indices start from 1, but the corresponding fi_addrs
provided to the application begin from 0.
Introduced RXD_ADDR_INVALID = 0  to represent an invalid address
for rxd_addr.

Signed-off-by: Nikhil Nanal <nikhil.nanal@intel.com>
@nikhilnanal nikhilnanal force-pushed the feat_dynAV4 branch 2 times, most recently from 41f1b88 to 96bd8bf Compare August 3, 2020 20:03
@nikhilnanal
Copy link
Contributor Author

Submitted patch #3

@shefty shefty merged commit 1c82026 into ofiwg:master Aug 3, 2020
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.

2 participants