]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add op_wq suicide timeout
authorSamuel Just <sjust@redhat.com>
Wed, 6 May 2015 18:02:19 +0000 (11:02 -0700)
committerNathan Cutler <ncutler@suse.com>
Sun, 6 Sep 2015 13:35:42 +0000 (15:35 +0200)
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 3f2946aa9f9b4b432e8c018283503153a2b1eddc)

Conflicts:
src/osd/OSD.cc
          adapt op_wq() and peering_wq() calls in OSD::OSD
src/osd/OSD.h
          adapt OpWQ instead of ShardedOpWQ

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

index 77fdc22a82666bc621acfbc0ae62b42454dcef34..226668cf8feea6b77dcd01c48a6a1fa5a0a3e4b4 100644 (file)
@@ -476,6 +476,7 @@ OPTION(osd_recover_clone_overlap_limit, OPT_INT, 10)
 OPTION(osd_backfill_scan_min, OPT_INT, 64)
 OPTION(osd_backfill_scan_max, OPT_INT, 512)
 OPTION(osd_op_thread_timeout, OPT_INT, 15)
+OPTION(osd_op_thread_suicide_timeout, OPT_INT, 150)
 OPTION(osd_recovery_thread_timeout, OPT_INT, 30)
 OPTION(osd_recovery_thread_suicide_timeout, OPT_INT, 300)
 OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1)
index 74d90d8829fc18812509db685d5aa616f1cfffa2..8139c85a67c0a6e8f079cd70b87c69b4763a2bd6 100644 (file)
@@ -940,8 +940,16 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_,
   finished_lock("OSD::finished_lock"),
   op_tracker(cct, cct->_conf->osd_enable_op_tracker),
   test_ops_hook(NULL),
-  op_wq(this, cct->_conf->osd_op_thread_timeout, &op_tp),
-  peering_wq(this, cct->_conf->osd_op_thread_timeout, &op_tp),
+  op_wq(
+    this,
+    cct->_conf->osd_op_thread_timeout,
+    cct->_conf->osd_op_thread_suicide_timeout,
+    &op_tp),
+  peering_wq(
+    this,
+    cct->_conf->osd_op_thread_timeout,
+    cct->_conf->osd_op_thread_suicide_timeout,
+    &op_tp),
   map_lock("OSD::map_lock"),
   peer_map_epoch_lock("OSD::peer_map_epoch_lock"),
   debug_drop_pg_create_probability(cct->_conf->osd_debug_drop_pg_create_probability),
index 10828f26aeee1211aaaaef83c852ea2078e155d4..eb1060468e64939c43738e9b7ffed28d2ace380d 100644 (file)
@@ -1147,9 +1147,9 @@ private:
     map<PG*, list<OpRequestRef> > pg_for_processing;
     OSD *osd;
     PrioritizedQueue<pair<PGRef, OpRequestRef>, entity_inst_t > pqueue;
-    OpWQ(OSD *o, time_t ti, ThreadPool *tp)
+    OpWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
       : ThreadPool::WorkQueueVal<pair<PGRef, OpRequestRef>, PGRef >(
-       "OSD::OpWQ", ti, ti*10, tp),
+       "OSD::OpWQ", ti, si, tp),
        qlock("OpWQ::qlock"),
        osd(o),
        pqueue(o->cct->_conf->osd_op_pq_max_tokens_per_priority,
@@ -1211,9 +1211,9 @@ private:
     list<PG*> peering_queue;
     OSD *osd;
     set<PG*> in_use;
-    PeeringWQ(OSD *o, time_t ti, ThreadPool *tp)
+    PeeringWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
       : ThreadPool::BatchWorkQueue<PG>(
-       "OSD::PeeringWQ", ti, ti*10, tp), osd(o) {}
+       "OSD::PeeringWQ", ti, si, tp), osd(o) {}
 
     void _dequeue(PG *pg) {
       for (list<PG*>::iterator i = peering_queue.begin();