Re: [for-416 PATCH v2] bcache: fix writeback target calculation
From: Michael Lyle <hidden>
Date: 2018-01-02 19:02:10
Also in:
linux-bcache
Please note I have not tested this version yet: I'm just putting it out for review. Mike On 01/02/2018 11:00 AM, Michael Lyle wrote:
This fixes bcache writeback target calculation, for defects relating to large cache sets and calculation errors when there are multiple backing devices. Bcache needs to scale the dirty data in the cache over the multiple backing disks in order to calculate writeback rates for each. The previous code did this by multiplying the target number of dirty sectors by the backing device size, and expected it to fit into a uint64_t; this blows up on relatively small backing devices. The new approach figures out the bdev's share in 16384ths of the overall cached data. This is chosen to cope well when bdevs drastically vary in size and to ensure that bcache can cross the petabyte boundary for each backing device. Per review, we ensure that every device gets at least 1/16384th of the writeback share. This also differs from v1 of the patchset in scaling the error, which corrects previous problems with writeback rate calculation across multiple devices. Reported-by: Jack Douglas <redacted> Signed-off-by: Michael Lyle <redacted>