From: Jianpeng Ma Date: Tue, 23 Dec 2014 03:02:33 +0000 (+0800) Subject: WBThrottle: call signal only beyond limit when queue entry. X-Git-Tag: v9.0.2~94^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6b054fcc99c4befa87e988c7fe6d3d1a47d1e2ab;p=ceph.git WBThrottle: call signal only beyond limit when queue entry. Signed-off-by: Jianpeng Ma --- diff --git a/src/os/WBThrottle.cc b/src/os/WBThrottle.cc index db0636dd401c..7bf5fcc87cb2 100644 --- a/src/os/WBThrottle.cc +++ b/src/os/WBThrottle.cc @@ -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()