From: Jason Dillaman Date: Sat, 10 Nov 2018 00:53:55 +0000 (-0500) Subject: Merge pull request #24214 from iridescent-rsy/bursting_io X-Git-Tag: v14.1.0~946 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6ac41ccbaf2a6ce1fe5761399f6403509e45a8e7;p=ceph.git Merge pull request #24214 from iridescent-rsy/bursting_io librbd: reduce the TokenBucket fill cycle and support bursting io configuration Reviewed-by: Jason Dillaman --- 6ac41ccbaf2a6ce1fe5761399f6403509e45a8e7 diff --cc src/common/Throttle.cc index 0d24acc0ee4f,8e026bfdb9f1..f3a3bd02f9b8 --- a/src/common/Throttle.cc +++ b/src/common/Throttle.cc @@@ -741,15 -796,15 +796,15 @@@ void TokenBucketThrottle::add_tokens() // check the m_blockers from head to tail, if blocker can get // enough tokens, let it go. while (!m_blockers.empty()) { - Blocker blocker = m_blockers.front(); + Blocker &blocker = m_blockers.front(); uint64_t got = m_throttle.get(blocker.tokens_requested); if (got == blocker.tokens_requested) { - // got enough tokens for front. - tmp_blockers.splice(tmp_blockers.end(), m_blockers, m_blockers.begin()); + // got enough tokens for front. + tmp_blockers.splice(tmp_blockers.end(), m_blockers, m_blockers.begin()); } else { - // there is no more tokens. - blocker.tokens_requested -= got; - break; + // there is no more tokens. + blocker.tokens_requested -= got; + break; } } }