summaryrefslogtreecommitdiff
path: root/.gitattributes
diff options
context:
space:
mode:
authorMichael Lyle <mlyle@lyle.org>2017-10-13 16:35:36 -0700
committerJens Axboe <axboe@kernel.dk>2017-10-16 09:07:26 -0600
commit1d316e658374f700fdfff9299c70ce65d8d145e6 (patch)
tree38b763dc0480f4fa972e69ca06793d1a2f9c670c /.gitattributes
parent5fa89fb9a86bcc0f0b3f21ab6087a8a4170dcd2c (diff)
bcache: implement PI controller for writeback rate
bcache uses a control system to attempt to keep the amount of dirty data in cache at a user-configured level, while not responding excessively to transients and variations in write rate. Previously, the system was a PD controller; but the output from it was integrated, turning the Proportional term into an Integral term, and turning the Derivative term into a crude Proportional term. Performance of the controller has been uneven in production, and it has tended to respond slowly, oscillate, and overshoot. This patch set replaces the current control system with an explicit PI controller and tuning that should be correct for most hardware. By default, it attempts to write at a rate that would retire 1/40th of the current excess blocks per second. An integral term in turn works to remove steady state errors. IMO, this yields benefits in simplicity (removing weighted average filtering, etc) and system performance. Another small change is a tunable parameter is introduced to allow the user to specify a minimum rate at which dirty blocks are retired. There is a slight difference from earlier versions of the patch in integral handling to prevent excessive negative integral windup. Signed-off-by: Michael Lyle <mlyle@lyle.org> Reviewed-by: Coly Li <colyli@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to '.gitattributes')
0 files changed, 0 insertions, 0 deletions