Hello,
On Mon, Oct 14, 2013 at 05:09:17PM +0800, Hong Zhiguo wrote:
From: Hong Zhiguo <redacted>
Token bucket algorithm(http://en.wikipedia.org/wiki/Token_bucket)
is very simple and widely used for rate limiting and shaping.
It's well suitable for blk-throttle. And it natually works for
hierarchical cgroups. So I took it to replace the original time
_slicing_|_trimming_|_extending_ logic.
The advantage is simplicity, reliability and less fluctuation.
About 300 lines of code for time-slicing is replaced with 60 lines of
code for token bucket in blk-throttle.c.
I've tested this patch by fio with rw=randread, rw=randrw. It
behaves almost the same with original time-slicing implementation,
and with more accuracy.
Yes, this definitely is the direction we wanna take it. I'll wait for
Vivek to chime in but have you also tested hierarchical setup?
Thanks.
--
tejun