]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
dm writecache: set a default MAX_WRITEBACK_JOBS
authorMikulas Patocka <mpatocka@redhat.com>
Wed, 13 Jul 2022 11:09:04 +0000 (07:09 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:15:30 +0000 (11:15 +0200)
commit ca7dc242e358e46d963b32f9d9dd829785a9e957 upstream.

dm-writecache has the capability to limit the number of writeback jobs
in progress. However, this feature was off by default. As such there
were some out-of-memory crashes observed when lowering the low
watermark while the cache is full.

This commit enables writeback limit by default. It is set to 256MiB or
1/16 of total system memory, whichever is smaller.

Cc: stable@vger.kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-writecache.c

index 3ca8627c2f1deb236bd971b6d4acafc78aac8f8d..af5af0b78022b7c9ce0826fd215666a8e6df7883 100644 (file)
@@ -20,7 +20,7 @@
 
 #define HIGH_WATERMARK                 50
 #define LOW_WATERMARK                  45
-#define MAX_WRITEBACK_JOBS             0
+#define MAX_WRITEBACK_JOBS             min(0x10000000 / PAGE_SIZE, totalram_pages / 16)
 #define ENDIO_LATENCY                  16
 #define WRITEBACK_LATENCY              64
 #define AUTOCOMMIT_BLOCKS_SSD          65536