sharded_slab: Support alignment#134
Open
avdgrinten wants to merge 4 commits into
Open
Conversation
Assisted-by: Claude Code (Opus 4.7)
Assisted-by: Claude Code (Opus 4.8)
Assisted-by: Claude Code (Opus 4.8)
caccf86 to
8318789
Compare
avdgrinten
commented
Jun 14, 2026
Comment on lines
+260
to
+261
| // Slabs are naturally aligned. Use the aligned size for bucket computation. | ||
| auto idx = policy_traits::size_to_bucket(aligned_size); |
Member
Author
There was a problem hiding this comment.
Actually, for non-power-of-2 buckets, this does not work. Even if the allocation size if a multiple of alignment, the bucket size does not need to be. So this needs some re-thinking.
Comment on lines
+791
to
+792
| template<sharded_slab::Policy P> | ||
| using sharded_slab_domain = sharded_slab::pool<P>; |
Member
Author
There was a problem hiding this comment.
Note to myself: copy/paste mistake.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Alignment works like this:
chunk_boundaryand the object atchunk_boundary + alignment).chunk_boundaryand store the header out of band. Overaligned objects are the only objects that have addresses that are multiples ofchunk_boundary, so they can be detected in thedeallocate()path.