On Sun, Apr 30 2017 at 5:34pm -0400, Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote: > dm-bufio checks a watermark when it allocates a new buffer in the function > __bufio_new. However, it doesn't check the watermark when the user changes > the value /sys/module/dm_bufio/parameters/max_cache_size_bytes. > > This may result in a problem - if the watermark is high enough so that all > possible buffers are allocated and if the user lowers the value > "max_cache_size_bytes", the watermark will never be checked against the > new value because no new buffer would be allocated. > > This patch changes the function __evict_old_buffers so that it checks the > watermark. __evict_old_buffers is called every 30 seconds, so if the user > lowes "max_cache_size_bytes", dm-bufio will react to this change within > 30 seconds and decrease memory consumption. > > This patch requires the previous patch "dm-bufio: avoid a possible > deadlock due to lock ordering" to be applied. Applying this patch without > the previous patch would result in a deadlock. > > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx I've applied the 2 stable@ fixes for 4.12 but the optimizations will have to wait for 4.13 (the 4.12 merge window is already open, I need to draw a line in the sand now). Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel