Skip to content

Add extra allocation/eviction policies - #67

Draft
igchor wants to merge 21 commits into
intel:developfrom
igchor:extra_policies
Draft

Add extra allocation/eviction policies#67
igchor wants to merge 21 commits into
intel:developfrom
igchor:extra_policies

Conversation

@igchor

@igchorigchor commented Mar 7, 2023

Copy link
Copy Markdown

Ref: igchor@a2721d1


This change is Reviewable

igchorand others added 21 commits March 3, 2023 13:38
Run tests on CI
Run long tests (navy/bench) every day on CI
Run CI on prebuild docker image
Run only centos build on CI
Update docker file used in CI
Centos8 is EOL
Disable failing clang-format-check
Add extra param to build-package.sh
Add scripts for rebuilding/pushing docker images
Taken from: pmem/dev-utils-kit@30794c3
Extend CI to rebuild docker automatically
Update build-cachelib-docker.yml
Do not use shallow clone to make sure Docker rebuild logic works correctly.
Added required packages to install Intel ittapi
Update CI to use intel/CacheLib repo (pmem#17)
Add multi-tier navy benchmark and run it on CI
- fix navy multi-tier config for NUMA bindings
added code coverage support in CacheLib
Adding libdml to CentOS docker image (pmem#53)
only exclude allocator-test-NavySetupTestm, shm-test-test_page_size tests
added perf and numactl to docker packages
---------------------------------------------
one large commit for all CI and code coverage
see above for the change history.
It is similar to 'moving' but requires ref count to be 0.
An item which is marked for eviction causes all incRef() calls to
that item to fail.
This will be used to ensure that once item is selected for eviction,
no one can interfere and prevent the eviction from suceeding.
'markedForEviction' relies on the same 'exlusive' bit as the 'moving'
state. To distinguish between those two states, 'moving' add 1 to the
refCount. This is hidden from the user, so getRefCount() will not
return that extra ref.
- Add in MemoryTier tests
- Increase max number of tiers to 2 for tiers tests
…ng in single tier mode and use 31 bits for addressing in multi-tier mode
This includes printing:
- allocSize
- allocated memory size
- memory usage fraction
…art 2)
fix for compressed ptr (upstream) -> compress from false to true
for different pool sizes. We also use getPoolSize(pid),
to get total size from all pools across allocators.
It also fixes the tiering sizes (pulls changes from
what was issue75 rebased commit that did not make
it into upstream commits).
Rebased to use ramCacheSize.
for the compressed ptr changes that were introduced
upstream.
- Includes later cosmetic changes added by sounak
9cb5c29
fix for rolling stats (on multi-tier to be followed by multi-tier rolling stats
implementation in the following commit)
Hot queue iterator for 2Q. Will start at Hot queue and move to Warm queue if hot queue is exhausted. Useful for promotion semantics if using 2Q replacement. rebased on to develop and added some tests.
- transparent item movement
- multi-tier combined locking with exclusive bit (pmem#38)
with refactored incRef to support returning the result of
markMoving (fail if already moving or exclusvie bit is set) option.
- add tests (updated for numa bindings - post combined locking)
for transparent item movement
This would lead to deadlock (.e.g in forEachChainedItem)
if the child is moving (e.g. marked by Slab Release thread).
Instead treat moving bit only to prevent freeing the item and
do all synchronization on parent.
Background data movement using periodic workers. Attempts to evict/promote items per given thresholds for each class. These reduce p99 latency since there is a higher chance that an allocation slot is free in the tier we are allocating in.
…move to fail
- updated slab release logic for move failure, but there is still an issue
with slab movement. currently investigating.
@byrnedj
byrnedjforce-pushed the develop branch 2 times, most recently from f6ad2ae to 09d7babCompareJuly 23, 2023 23:44
@byrnedj
byrnedjforce-pushed the develop branch 2 times, most recently from 09d7bab to ebfca17CompareMay 21, 2024 13:24
@byrnedj
byrnedjforce-pushed the develop branch 4 times, most recently from 9ba4e79 to c1ff397CompareJune 26, 2024 18:09
Sign up for freeto 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.

3 participants

@igchor@byrnedj@guptask