mempool: switch from thread local storage to cpu local storage#53245
mempool: switch from thread local storage to cpu local storage#53245rzarzynski wants to merge 6 commits intoceph:mainfrom
Conversation
ceph#53130 (comment) Signed-off-by: Radosław Zarzyński <[email protected]>
When the cpu local storage is used aligning the coutner's struct hurts cache density while any benefit may be observed only when there is an unlikely collision (more CPUs than shards). Signed-off-by: Radosław Zarzyński <[email protected]>
The only situation I can imagine when they needed is so large number of CPUs that we're running out of shards. If that's a worry, we either can: - tune to use do atomic or unatomic counting on the the fly, - ceph_assert it never happens. Signed-off-by: Radosław Zarzyński <[email protected]>
This reverts commit 3c1bc73. At the moment we have: ``` pool x: padded shard cpu 1 | padded shard cpu 2 | ... pool y: padded shard cpu 1 | padded shard cpu 2 | ... ``` We could have: ``` padded shards of cpu 1: pool x | pool y | ... padded shards of cpu 2: pool x | pool y | ... ``` The change – as it rearranges data structures – would be far bigger than the small-but-wrong commit being reverted :-(. Signed-off-by: Radosław Zarzyński <[email protected]>
It looks this counter was initially thought to be a debug one but -- because of the `force_register` -- flag it is widely used now. Found by Yingxin Cheng <[email protected]> Signed-off-by: Radosław Zarzyński <[email protected]> Conflicts: src/include/mempool.h
Signed-off-by: Radosław Zarzyński <[email protected]>
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
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