From 91d4c217e32b8b76fcac49f37879a3f78088694d Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 6 May 2015 10:52:40 -0700 Subject: [PATCH] OSD: add scrub_wq suicide timeout Signed-off-by: Samuel Just (cherry picked from commit 547a7041edc833f3cc8e04d388574809e30a8af6) Conflicts: src/osd/OSD.cc firefly still has scrub_finalize_wq --- src/common/config_opts.h | 1 + src/osd/OSD.cc | 12 ++++++++++-- src/osd/OSD.h | 8 ++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 226668cf8feea..98768ed681584 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -483,6 +483,7 @@ OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1) OPTION(osd_snap_trim_thread_suicide_timeout, OPT_INT, 60*60*10) OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0) OPTION(osd_scrub_thread_timeout, OPT_INT, 60) +OPTION(osd_scrub_thread_suicide_timeout, OPT_INT, 60) OPTION(osd_scrub_finalize_thread_timeout, OPT_INT, 60*10) OPTION(osd_scrub_invalid_stats, OPT_BOOL, true) OPTION(osd_remove_thread_timeout, OPT_INT, 60*60) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 8139c85a67c0a..db99ca3a28853 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -978,9 +978,17 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_, cct->_conf->osd_snap_trim_thread_timeout, cct->_conf->osd_snap_trim_thread_suicide_timeout, &disk_tp), - scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp), + scrub_wq( + this, + cct->_conf->osd_scrub_thread_timeout, + cct->_conf->osd_scrub_thread_suicide_timeout, + &disk_tp), scrub_finalize_wq(cct->_conf->osd_scrub_finalize_thread_timeout, &op_tp), - rep_scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp), + rep_scrub_wq( + this, + cct->_conf->osd_scrub_thread_timeout, + cct->_conf->osd_scrub_thread_suicide_timeout, + &disk_tp), remove_wq( store, cct->_conf->osd_remove_thread_timeout, diff --git a/src/osd/OSD.h b/src/osd/OSD.h index eb1060468e649..158d19e458946 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -1756,8 +1756,8 @@ protected: struct ScrubWQ : public ThreadPool::WorkQueue { OSD *osd; - ScrubWQ(OSD *o, time_t ti, ThreadPool *tp) - : ThreadPool::WorkQueue("OSD::ScrubWQ", ti, 0, tp), osd(o) {} + ScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp) + : ThreadPool::WorkQueue("OSD::ScrubWQ", ti, si, tp), osd(o) {} bool _empty() { return osd->scrub_queue.empty(); @@ -1847,8 +1847,8 @@ protected: list rep_scrub_queue; public: - RepScrubWQ(OSD *o, time_t ti, ThreadPool *tp) - : ThreadPool::WorkQueue("OSD::RepScrubWQ", ti, 0, tp), osd(o) {} + RepScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp) + : ThreadPool::WorkQueue("OSD::RepScrubWQ", ti, si, tp), osd(o) {} bool _empty() { return rep_scrub_queue.empty(); -- 2.39.5