Skip to content

DAOS-19645 common: Enhance dav_v2 alloc-from-bucket APIs for multiple… - #19093

Open
sherintg wants to merge 1 commit into
feature/mdonssd_p2_improvefrom
sherintg/mdonssd_p2_improve/DAOS-19645
Open

sherintg wants to merge 1 commit into
feature/mdonssd_p2_improvefrom
sherintg/mdonssd_p2_improve/DAOS-19645

Conversation

@sherintg

Copy link
Copy Markdown
Collaborator

… E-buckets

Rework the umem alloc-from-bucket APIs to accept a struct of type umem_bucket_req instead of a single bucket id, so an allocation can describe an ordered set of evictable (E) buckets.

  • Add umem_bucket_req_t { ubr_bkt_ids, ubr_bkt_cnt, ubr_bkt_max } and change umem_{alloc,zalloc,reserve,atomic_alloc}_from_bucket() and the backend ops (mo_tx_alloc/mo_reserve/mo_atomic_alloc) to take a umem_bucket_req_t * (NULL == default/non-evictable bucket).

  • palloc_reservation_create now allocates by walking the requested evictable buckets in priority order, then the spill-over evictable (SOE) buckets, and finally the non-evictable bucket.

  • TEMP FIX: ubr_bkt_max == 0 permits unbounded spill-over to SOE buckets, preserving the legacy single-bucket behavior; the vos callers request ubr_bkt_cnt = 1, ubr_bkt_max = 0. Unbounded SOE spill-over will be removed in a future change.

  • Update umem/vos callers and add a unit test (BMEM017a) covering spill-over across two requested buckets.

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

@github-actions

Copy link
Copy Markdown

Ticket title is 'Enhance dav v2 alloc from bucket APIs to accept the multiple E buckets'
Status is 'Open'
https://daosio.atlassian.net/browse/DAOS-19645

@daosbuild3

Copy link
Copy Markdown
Collaborator

… E-buckets

Rework the umem alloc-from-bucket APIs to accept a struct of type
umem_bucket_req instead of a single bucket id, so an allocation can describe
an ordered set of evictable (E) buckets.

- Add umem_bucket_req_t { ubr_bkt_ids, ubr_bkt_cnt, ubr_bkt_max } and
  change umem_{alloc,zalloc,reserve,atomic_alloc}_from_bucket() and the
  backend ops (mo_tx_alloc/mo_reserve/mo_atomic_alloc) to take a
  umem_bucket_req_t * (NULL == default/non-evictable bucket).

- palloc_reservation_create now allocates by walking the requested
  evictable buckets in priority order, then the spill-over evictable
  (SOE) buckets, and finally the non-evictable bucket.

- TEMP FIX: ubr_bkt_max == 0 permits unbounded spill-over to SOE buckets,
  preserving the legacy single-bucket behavior; the vos callers request
  ubr_bkt_cnt = 1, ubr_bkt_max = 0. Unbounded SOE spill-over will be
  removed in a future change.

- Update umem/vos callers and add a unit test (BMEM017a) covering
  spill-over across two requested buckets.

Allow-unstable-test: true

Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
@sherintg
sherintg force-pushed the sherintg/mdonssd_p2_improve/DAOS-19645 branch from 22fb6d6 to 7454b41 Compare September 17, 2026 05:17
@sherintg
sherintg marked this pull request as ready for review September 17, 2026 06:36
@sherintg
sherintg requested review from a team as code owners September 17, 2026 06:36
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.

2 participants