From: dparmar18 Date: Thu, 16 Feb 2023 09:48:42 +0000 (+0530) Subject: osd: add method to check for laggy osds X-Git-Tag: v18.2.4~418^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=572fb1fce279d3c54ea92091fb38d91869579b24;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 650f633cfd3f..b9f1906b4916 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1871,6 +1871,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 3ca12901ac63..920bb8fdf50f 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -654,6 +654,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