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-16866 bio: prealloc less DMA buffer for sys tgt #15674

Merged
merged 4 commits into from
Jan 13, 2025

Conversation

NiuYawei
Copy link
Contributor

@NiuYawei NiuYawei commented Jan 2, 2025

Sys target needs only very limited DMA buffer for the WAL of RDB, we can prealloc only 1 chunk for sys target so that leave more hugepages for regular VOS targets.

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.

@NiuYawei NiuYawei requested review from a team as code owners January 2, 2025 13:09
Copy link

github-actions bot commented Jan 2, 2025

Ticket title is 'pre-allocate more DMA buffer on engine start'
Status is 'Reopened'
https://daosio.atlassian.net/browse/DAOS-16866

@NiuYawei
Copy link
Contributor Author

NiuYawei commented Jan 2, 2025

The ticket number should be DAOS-16866

wangshilong
wangshilong previously approved these changes Jan 3, 2025
tanabarr
tanabarr previously approved these changes Jan 5, 2025
Copy link
Contributor

@tanabarr tanabarr left a comment

Choose a reason for hiding this comment

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

fixes engine start issue for me, thanks

Sys target needs only very limited DMA buffer for the WAL of RDB,
we can prealloc only 1 chunk for sys target so that leave more
hugepages for regular VOS targets.

Signed-off-by: Niu Yawei <[email protected]>
@NiuYawei NiuYawei dismissed stale reviews from tanabarr and wangshilong via a247fca January 6, 2025 00:57
@NiuYawei NiuYawei force-pushed the niu/DAOS-16894-fix branch from c60648e to a247fca Compare January 6, 2025 00:57
@NiuYawei
Copy link
Contributor Author

NiuYawei commented Jan 6, 2025

@tanabarr , @wangshilong , just updated copyright.

@daosbuild1
Copy link
Collaborator

Test stage Python Bandit check completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15674/2/execution/node/133/log

wangshilong
wangshilong previously approved these changes Jan 6, 2025
tanabarr
tanabarr previously approved these changes Jan 6, 2025
@NiuYawei NiuYawei changed the title DAOS-16894 bio: prealloc less DMA buffer for sys tgt DAOS-16866 bio: prealloc less DMA buffer for sys tgt Jan 7, 2025
@NiuYawei NiuYawei requested a review from a team January 8, 2025 03:13
@NiuYawei
Copy link
Contributor Author

NiuYawei commented Jan 8, 2025

@daos-stack/daos-gatekeeper could you force land this? CI failed for the known NLT warning of dfuse_cb_release().

@mchaarawi
Copy link
Contributor

@daos-stack/daos-gatekeeper could you force land this? CI failed for the known NLT warning of dfuse_cb_release().

but no other tests ran here? shouldn't this run at least some md-on-ssd stages?

Skip-func-hw-test-medium-md-on-ssd: false

Signed-off-by: Niu Yawei <[email protected]>
@NiuYawei
Copy link
Contributor Author

NiuYawei commented Jan 8, 2025

@daos-stack/daos-gatekeeper could you force land this? CI failed for the known NLT warning of dfuse_cb_release().

but no other tests ran here? shouldn't this run at least some md-on-ssd stages?

Sure, I merged master and added commit pragma to run some md-on-ssd tests.

@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15674/4/execution/node/1461/log

Reduce DMA buffer pre-alloc from 60% to 50%, because we observed
pre-alloc failures in CI tests. (probably because of memory
fragmentation on some test nodes).

Signed-off-by: Niu Yawei <[email protected]>
@NiuYawei NiuYawei dismissed stale reviews from tanabarr and wangshilong via 2414cc2 January 10, 2025 01:54
@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-15674/5/execution/node/319/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-15674/5/execution/node/314/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-15674/5/execution/node/388/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-15674/5/execution/node/387/log

wangshilong
wangshilong previously approved these changes Jan 10, 2025
tanabarr
tanabarr previously approved these changes Jan 10, 2025
@@ -31,7 +32,7 @@
/* SPDK blob parameters */
#define DAOS_BS_CLUSTER_SZ (1ULL << 25) /* 32MB */
/* DMA buffer parameters */
#define DAOS_DMA_CHUNK_INIT_PCT 60 /* Default pre-xstream init chunks, in percentage */
#define DAOS_DMA_CHUNK_INIT_PCT 50 /* Default pre-xstream init chunks, in percentage */
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this read "per-xstream"?
If we are seeing out of memory when trying to grow the buffer, why does it help only allocating 50% initially, won't we end up seeing the same out of memory issues after multiple buffer growths?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, sorry for the typo.

I was thinking that DAOS engine usually start once server node started, and we'd try to hold hugepages as much as possible when the memory isn't fragmented and no other potential hugepage consumers.

Fix typo.

Signed-off-by: Niu Yawei <[email protected]>
@NiuYawei NiuYawei dismissed stale reviews from tanabarr and wangshilong via a10fc00 January 10, 2025 13:57
@NiuYawei NiuYawei requested a review from wangshilong January 13, 2025 01:27
@NiuYawei NiuYawei merged commit 23518fa into master Jan 13, 2025
56 of 57 checks passed
@NiuYawei NiuYawei deleted the niu/DAOS-16894-fix branch January 13, 2025 03:42
daltonbohning added a commit that referenced this pull request Jan 16, 2025
daltonbohning added a commit that referenced this pull request Jan 16, 2025
daltonbohning added a commit that referenced this pull request Jan 16, 2025
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.

5 participants