diff options
author | SrinivasaBharathKanta <61141011+SrinivasaBharath@users.noreply.github.com> | 2025-01-14 01:54:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-14 01:54:34 +0100 |
commit | 4a03c75b011ae2021b2dd26981ba6223cacad3b1 (patch) | |
tree | 32effd19cc2b507e5edeebe08e791a0ed17714ce | |
parent | Merge pull request #61312 from adamemerson/wip-boost-1.86-fixes (diff) | |
parent | osd/osd_types: perfect forwarding in pool_opts_t::set() (diff) | |
download | ceph-4a03c75b011ae2021b2dd26981ba6223cacad3b1.tar.xz ceph-4a03c75b011ae2021b2dd26981ba6223cacad3b1.zip |
Merge pull request #60215 from MaxKellermann/osd_optimizations
OSD: Small optimizations
-rw-r--r-- | src/osd/ExtentCache.h | 2 | ||||
-rw-r--r-- | src/osd/Session.h | 2 | ||||
-rw-r--r-- | src/osd/osd_types.h | 5 | ||||
-rw-r--r-- | src/osdc/Objecter.cc | 2 |
4 files changed, 5 insertions, 6 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; diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 1e92d5cd3d6..485fddead7a 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -1151,9 +1151,8 @@ public: bool is_set(key_t key) const; template<typename T> - void set(key_t key, const T &val) { - value_t value = val; - opts[key] = value; + void set(key_t key, T &&val) { + opts.insert_or_assign(key, std::forward<T>(val)); } template<typename T> diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 087b623333b..82d43bb3dde 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1393,7 +1393,7 @@ void Objecter::handle_osd_map(MOSDMap *m) for (auto& [c, ec] : p->second) { asio::post(service.get_executor(), asio::append(std::move(c), ec)); } - waiting_for_map.erase(p++); + p = waiting_for_map.erase(p); } monc->sub_got("osdmap", osdmap->get_epoch()); |