]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
WBThrottle: call signal only beyond limit when queue entry.
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 23 Dec 2014 03:02:33 +0000 (11:02 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 23 Dec 2014 03:02:33 +0000 (11:02 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/os/WBThrottle.cc

index db0636dd401c3483aaaf31f9cf3539b005027cf8..7bf5fcc87cb238d238677e96a610b989409643ae 100644 (file)
@@ -212,7 +212,10 @@ void WBThrottle::queue_wb(
 
   wbiter->second.first.add(nocache, len, 1);
   insert_object(hoid);
-  cond.Signal();
+  if (!(cur_ios < io_limits.first &&
+      pending_wbs.size() < fd_limits.first &&
+      cur_size < size_limits.first))
+    cond.Signal();
 }
 
 void WBThrottle::clear()