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

DAOS-15204 cart: add crt_perf utils #13825

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from
Draft

DAOS-15204 cart: add crt_perf utils #13825

wants to merge 11 commits into from

Conversation

soumagne
Copy link
Collaborator

Before requesting gatekeeper:

  • Two review approvals and any prior change requests have been resolved.
  • Testing is complete and all tests passed or there is a reason documented in the PR why it should be force landed and forced-landing tag is set.
  • Features: (or Test-tag*) commit pragma was used or there is a reason documented that there are no appropriate tags for this PR.
  • Commit messages follows the guidelines outlined here.
  • Any tests skipped by the ticket being addressed have been run and passed in the PR.

Gatekeeper:

  • You are the appropriate gatekeeper to be landing the patch.
  • The PR has 2 reviews by people familiar with the code, including appropriate owners.
  • Githooks were used. If not, request that user install them and check copyright dates.
  • Checkpatch issues are resolved. Pay particular attention to ones that will show up on future PRs.
  • All builds have passed. Check non-required builds for any new compiler warnings.
  • Sufficient testing is done. Check feature pragmas and test tags and that tests skipped for the ticket are run and now pass with the changes.
  • If applicable, the PR has addressed any potential version compatibility issues.
  • Check the target branch. If it is master branch, should the PR go to a feature branch? If it is a release branch, does it have merge approval in the JIRA ticket.
  • Extra checks if forced landing is requested
    • Review comments are sufficiently resolved, particularly by prior reviewers that requested changes.
    • No new NLT or valgrind warnings. Check the classic view.
    • Quick-build or Quick-functional is not used.
  • Fix the commit message upon landing. Check the standard here. Edit it to create a single commit. If necessary, ask submitter for a new summary.

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

@daosbuild1
Copy link
Collaborator

Test stage Build on Leap 15.5 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/1/execution/node/383/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on Leap 15.5 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/1/execution/node/305/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/1/execution/node/361/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 9 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/1/execution/node/349/log

@daosbuild1
Copy link
Collaborator

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/1/execution/node/327/log

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

@daosbuild1
Copy link
Collaborator

Test stage Build on Leap 15.5 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/2/execution/node/380/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on Leap 15.5 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/2/execution/node/278/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/2/execution/node/370/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 9 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/2/execution/node/383/log

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/2/execution/node/324/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on Leap 15.5 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/3/execution/node/287/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 9 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/3/execution/node/310/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/3/execution/node/315/log

@daosbuild1
Copy link
Collaborator

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/3/execution/node/344/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/4/execution/node/383/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on Leap 15.5 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/4/execution/node/378/log

@daosbuild1
Copy link
Collaborator

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/4/execution/node/322/log

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 9 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/4/execution/node/377/log

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on EL 9 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/5/execution/node/363/log

@daosbuild1
Copy link
Collaborator

Test stage Build RPM on Leap 15.5 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-13825/5/execution/node/278/log

Copy link

Bug-tracker data:
Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

CRT_PERF_CHECK_D_ERROR(error, rc, "could not create request");

in_struct = crt_req_get(request->rpc);
in_struct->handle_id =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a comment here would help to explain what you are doing:)

/*******************/

static int
crt_perf_run(const struct crt_perf_info *perf_info, struct crt_perf_context_info *info,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it looks like crt_perf_run() implementations in most tests is very similar with the main difference being how input args are populated. any way to move this into crt_perf.c perhaps and pass it a function/cb to populate args instead?

Comment on lines +108 to +110
#define CRT_PERF_LAT_SKIP_SMALL 100
#define CRT_PERF_LAT_SKIP_LARGE 10
#define CRT_PERF_LARGE_SIZE 8192
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would help to explain those, i dont quite understand what they mean by just reading them

src/utils/crt_perf/crt_perf_server.c Outdated Show resolved Hide resolved
sizeof(uri_name) * info->mpi_info.size);

rc = crt_perf_mpi_allgather(&info->mpi_info, uri_name, sizeof(uri_name), uri_list,
sizeof(uri_name));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm.. shoudnt the last arg here be sizeof(uri_name) * info->mpi_info.size?

Comment on lines +516 to +520
char *rank_uri = uri_list + rank * sizeof(uri_name);

if (rank == info->mpi_info.rank)
continue; /* our rank is already added */

rc = crt_group_primary_rank_add(info->context_info[0].context, NULL, rank,
rank_uri);
CRT_PERF_CHECK_D_ERROR(error, rc, "could not add rank %d %s", rank,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can also use crt_group_primary_modify() and add all ranks and uris in a bulk if you want to avoid the loop

src/utils/crt_perf/crt_perf.c Show resolved Hide resolved
rc = crt_init_opt(listen ? CRT_PERF_GROUP_ID : NULL, crt_init_flags, &crt_init_options);
CRT_PERF_CHECK_D_ERROR(error, rc, "could not init CART");

if (attach_info_path) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from past experience might be helpful to debug/info print the attach info path

CRT_PERF_CHECK_ERROR(cb_info->cci_rc != 0, out, info->rc, cb_info->cci_rc,
"callback failed");

if (info->cb) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

surprised checkpatch doesnt complain about single statement being wrapped in { } 's

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Copy link

Ticket title is 'Add crt_perf utilities'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-15204

@daosbuild1
Copy link
Collaborator

Test stage Unit Test on EL 8.8 completed with status UNSTABLE. https://build.hpdd.intel.com/job/daos-stack/job/daos//view/change-requests/job/PR-13825/7/testReport/

@daosbuild1
Copy link
Collaborator

Test stage Unit Test with memcheck on EL 8.8 completed with status UNSTABLE. https://build.hpdd.intel.com/job/daos-stack/job/daos//view/change-requests/job/PR-13825/7/testReport/

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
This allows to initialize CART in busy wait mode

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Clean up crt_context_init()/destroy()

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Add d_timeless() for time comparison

Align d_timediff() to pass in pointers

Update tests

Add missing D_COND_INIT() / D_COND_DESTROY()

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Only support a single callback per context for now

Fix utest_swim not creating cart context

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
add crt_hg_event_progress() and query wait fd from context

add D_PROGRESS_LEGACY to revert to old progress

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Add crt_rate / crt_perf_server executables. CRT perf utils can be run
with and without MPI support. MPI support is automatically detected.

Add crt_bw_read/write benchmarks.

Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Required-githooks: true

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants