os/bluestore: fix AU accounting in bluestore_cache_other mempool.#46911
os/bluestore: fix AU accounting in bluestore_cache_other mempool.#46911
Conversation
9580b0f to
3e07dd1
Compare
aclamk
left a comment
There was a problem hiding this comment.
Good fix on inconsistent mempool tracking.
| mempool::get_pool( | ||
| mempool::pool_index_t(mempool::mempool_bluestore_cache_other)). | ||
| adjust_count(1, sizeof(uint32_t) * num_au); | ||
| adjust_count(alloc_au, sizeof(uint32_t) * alloc_au); |
There was a problem hiding this comment.
I think we here add 1 object size 4*alloc_au to mempool.
There was a problem hiding this comment.
just modified this a bit so each entry is treated as an object. The original plan was to be able to shrink this array if needed and hence adjust object count as well. But finally I've redesigned this stuff a bit differently.
| // == 0 if single unit or the whole blob is tracked | ||
| uint32_t au_size; // Allocation (=tracking) unit size, | ||
| // == 0 if uninitialized | ||
| uint32_t num_au; // Amount of allocation units tracked |
There was a problem hiding this comment.
Do we want to save some mem space by change num_au and alloc_au to uint16_t ?
Is 24->16 bytes worth it ?
Fixes: https://tracker.ceph.com/issues/56424 Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
…e_blob_use_tracker_t Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
3e07dd1 to
cf5c545
Compare
|
Failures, unrelated: Details: |
Fixes: https://tracker.ceph.com/issues/56424
Signed-off-by: Igor Fedotov igor.fedotov@croit.io
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows