]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add scrub_wq suicide timeout
authorSamuel Just <sjust@redhat.com>
Wed, 6 May 2015 17:52:40 +0000 (10:52 -0700)
committerNathan Cutler <ncutler@suse.com>
Sun, 6 Sep 2015 14:25:04 +0000 (16:25 +0200)
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 547a7041edc833f3cc8e04d388574809e30a8af6)

Conflicts:
        src/osd/OSD.cc
            firefly still has scrub_finalize_wq

src/common/config_opts.h
src/osd/OSD.cc
src/osd/OSD.h

index 226668cf8feea6b77dcd01c48a6a1fa5a0a3e4b4..98768ed6815847ec12a4bacfdd60a8f6de155b91 100644 (file)
@@ -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)
index 8139c85a67c0a6e8f079cd70b87c69b4763a2bd6..db99ca3a28853484acd05b4975f45142ec94b299 100644 (file)
@@ -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,
index eb1060468e64939c43738e9b7ffed28d2ace380d..158d19e458946f66fd82c580c43dd83454ef7abb 100644 (file)
@@ -1756,8 +1756,8 @@ protected:
 
   struct ScrubWQ : public ThreadPool::WorkQueue<PG> {
     OSD *osd;
-    ScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
-      : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, 0, tp), osd(o) {}
+    ScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+      : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, si, tp), osd(o) {}
 
     bool _empty() {
       return osd->scrub_queue.empty();
@@ -1847,8 +1847,8 @@ protected:
     list<MOSDRepScrub*> rep_scrub_queue;
 
   public:
-    RepScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
-      : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, 0, tp), osd(o) {}
+    RepScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+      : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, si, tp), osd(o) {}
 
     bool _empty() {
       return rep_scrub_queue.empty();