From: dparmar18 Date: Thu, 16 Feb 2023 09:48:42 +0000 (+0530) Subject: osd: add method to check for laggy osds X-Git-Tag: v17.2.8~557^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d85f45702806a5d70588311491a3a4371fac29e8;p=ceph.git osd: add method to check for laggy osds Fixes: https://tracker.ceph.com/issues/58023 Signed-off-by: Dhairya Parmar (cherry picked from commit 95fbe303a9692ac8dd2694298e32af951adfbe06) --- diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 78316779b524..30527dbeeee0 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1836,6 +1836,18 @@ uint64_t OSDMap::get_up_osd_features() const return cached_up_osd_features; } +bool OSDMap::any_osd_laggy() const +{ + for (int osd = 0; osd < max_osd; ++osd) { + if (!is_up(osd)) { continue; } + const auto &xi = get_xinfo(osd); + if (xi.laggy_probability || xi.laggy_interval) { + return true; + } + } + return false; +} + void OSDMap::dedup(const OSDMap *o, OSDMap *n) { using ceph::encode; diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 28449c8b63cd..79eaf5742699 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -643,6 +643,7 @@ private: public: bool have_crc() const { return crc_defined; } uint32_t get_crc() const { return crc; } + bool any_osd_laggy() const; std::shared_ptr crush; // hierarchical map bool stretch_mode_enabled; // we are in stretch mode, requiring multiple sites