summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max.kellermann@ionos.com>2024-10-04 11:50:19 +0200
committerMax Kellermann <max.kellermann@ionos.com>2024-11-13 21:00:29 +0100
commitf3f5b084a99855d1a5bd8244328c63d213993147 (patch)
treee8a37a35885afc0d2f835771f18a3f00ab5a91a2
parentMerge pull request #60554 from jshen28/fix-legacy-addr-mismatch (diff)
downloadceph-f3f5b084a99855d1a5bd8244328c63d213993147.tar.xz
ceph-f3f5b084a99855d1a5bd8244328c63d213993147.zip
osd: disable `boost::intrusive::constant_time_size`
By default, the Boost intrusive containers enable the `constant_time_size` option which adds overhead to each modification for tracking the size in a field. We don't need that. Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
-rw-r--r--src/osd/ExtentCache.h2
-rw-r--r--src/osd/Session.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/osd/ExtentCache.h b/src/osd/ExtentCache.h
index 972228cd077..7dc1d4f7263 100644
--- a/src/osd/ExtentCache.h
+++ b/src/osd/ExtentCache.h
@@ -363,7 +363,7 @@ private:
extent,
boost::intrusive::list_member_hook<>,
&extent::pin_list_member>;
- using list = boost::intrusive::list<extent, list_member_options>;
+ using list = boost::intrusive::list<extent, boost::intrusive::constant_time_size<false>, list_member_options>;
list pin_list;
~pin_state() {
ceph_assert(pin_list.empty());
diff --git a/src/osd/Session.h b/src/osd/Session.h
index 9fa9c655456..05a0119d31e 100644
--- a/src/osd/Session.h
+++ b/src/osd/Session.h
@@ -136,7 +136,7 @@ struct Session : public RefCountedObject {
ceph::mutex session_dispatch_lock =
ceph::make_mutex("Session::session_dispatch_lock");
- boost::intrusive::list<OpRequest> waiting_on_map;
+ boost::intrusive::list<OpRequest, boost::intrusive::constant_time_size<false>> waiting_on_map;
ceph::spinlock projected_epoch_lock;
epoch_t projected_epoch = 0;