journald,ratelimit: fix wrong calculation of burst_modulate() (#4218)

This patch fixes wrong calculation of burst_modulate(), which now calculates
the values smaller than really expected ones if available disk space is
strictly more than 1MB.

In particular, if available disk space is strictly more than 1MB and strictly
less than 16MB, the resulted value becomes smaller than its original one.

>>> (math.log2(1*1024**2)-16) / 4
1.0
>>> (math.log2(16*1024**2)-16) / 4
2.0
>>> (math.log2(256*1024**2)-16) / 4
3.0
→ This matches the comment in the function.
This commit is contained in:
HATAYAMA Daisuke
2016-09-27 00:36:20 +09:00
committed by Zbigniew Jędrzejewski-Szmek
parent a5ca3649d3
commit eeb084806b

View File

@@ -190,7 +190,7 @@ static unsigned burst_modulate(unsigned burst, uint64_t available) {
if (k <= 20)
return burst;
burst = (burst * (k-20)) / 4;
burst = (burst * (k-16)) / 4;
/*
* Example: