Re: [for-416 PATCH] bcache: fix writeback target calc on large devices
From: Michael Lyle <hidden>
Date: 2018-01-02 08:12:14
Also in:
linux-bcache
From: Michael Lyle <hidden>
Date: 2018-01-02 08:12:14
Also in:
linux-bcache
Tang Junhui-- Thank you for the feedback. On Mon, Jan 1, 2018 at 10:33 PM, [off-list ref] wrote:
From: Tang Junhui <redacted> This patch is useful for preventing the overflow of the expression (cache_dirty_target * bdev_sectors(dc->bdev)), but it also lead into a calc error, for example, when there is a 1G and 100*164G cached device, it would cause the "target" value to be aways zero of the 1G device, which would cause write-back threshold losing efficacy. Maybe at first we can judge if it overflows or not of the expression (cache_dirty_target * bdev_sectors(dc->bdev)), if it overflows, We can calc the value of target as the patch, otherwise, we calc it as old way.
Maybe it'd be preferable just to ensure that share always >=1. It seems like a pretty narrow set of cases where the current math works and the new math doesn't work, though, as I expect that it's relatively rare to have such a variation in sizes, and even so 16.4TB uses up 35 bits of the 64 bit quantity. I don't really like special cases or trying two different ways to do the math, because then it's very difficult to test. What do you think? Mike