79 lines
2.6 KiB
Diff
79 lines
2.6 KiB
Diff
|
From: Suresh Jayaraman <sjayaraman@suse.de>
|
||
|
Subject: [PATCH] mm: Make default VM dirty ratio configurable to suit different workloads
|
||
|
References: bnc#552883
|
||
|
Patch-mainline: Never
|
||
|
|
||
|
Based on the observation that higher VM dirty ratio improves performance of
|
||
|
most server workloads that dirties a lot of memory (e.g. simple databases not
|
||
|
using direct IO, workloads doing heavy writes) and the latency-sensitive
|
||
|
workloads like desktop and typical workstations perform better with a
|
||
|
decreased VM dirty ratio, make default VM dirty ratio configurable. This also
|
||
|
ensures that we have the similar dirty pages writeback limit in SLES11 SP1 as
|
||
|
compared to SLES11 GM.
|
||
|
|
||
|
The default VM dirty ratio is 20 for kernel-desktop flavor and 40 for all the
|
||
|
other flavors.
|
||
|
|
||
|
Also introduce a new CONFIG_KERNEL_DESKTOP option which might allow to tune
|
||
|
the kernel to suit desktop workloads.
|
||
|
|
||
|
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
|
||
|
Acked-by: Jiri Kosina <jkosina@suse.cz>
|
||
|
Acked-by: Jeff Mahoney <jeffm@suse.com>
|
||
|
---
|
||
|
init/Kconfig | 24 ++++++++++++++++++++++++
|
||
|
mm/page-writeback.c | 2 +-
|
||
|
2 files changed, 25 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- a/init/Kconfig
|
||
|
+++ b/init/Kconfig
|
||
|
@@ -32,6 +32,13 @@ config SPLIT_PACKAGE
|
||
|
If you aren't packaging a kernel for distribution, it's safe to
|
||
|
say n.
|
||
|
|
||
|
+config KERNEL_DESKTOP
|
||
|
+ bool "Kernel to suit desktop workloads"
|
||
|
+ default n
|
||
|
+ help
|
||
|
+ This is an option used to tune kernel parameters to better suit
|
||
|
+ desktop workloads.
|
||
|
+
|
||
|
config ARCH
|
||
|
string
|
||
|
option env="ARCH"
|
||
|
@@ -1131,6 +1138,23 @@ config MMAP_ALLOW_UNINITIALIZED
|
||
|
|
||
|
See Documentation/nommu-mmap.txt for more information.
|
||
|
|
||
|
+config DEFAULT_VM_DIRTY_RATIO
|
||
|
+ int "Default VM dirty ratio (in %)"
|
||
|
+ default 20 if KERNEL_DESKTOP
|
||
|
+ default 40
|
||
|
+ help
|
||
|
+ Allows to tune VM dirty ratio to suit different workloads. Increased
|
||
|
+ VM dirty ratio improves performance of most server workloads that
|
||
|
+ dirties a lot of memory (e.g. simple databases not using direct IO,
|
||
|
+ workloads doing heavy writes). The latency-sensitive workloads like
|
||
|
+ desktop and typical workstations perform better with a decreased
|
||
|
+ VM dirty ratio.
|
||
|
+
|
||
|
+ Recommended value for desktop workload is 20.
|
||
|
+ Recommended value for server workload is 40.
|
||
|
+
|
||
|
+ Only use this if you really know what you are doing.
|
||
|
+
|
||
|
config PROFILING
|
||
|
bool "Profiling support"
|
||
|
help
|
||
|
--- a/mm/page-writeback.c
|
||
|
+++ b/mm/page-writeback.c
|
||
|
@@ -77,7 +77,7 @@ int vm_highmem_is_dirtyable;
|
||
|
/*
|
||
|
* The generator of dirty data starts writeback at this percentage
|
||
|
*/
|
||
|
-int vm_dirty_ratio = 20;
|
||
|
+int vm_dirty_ratio = CONFIG_DEFAULT_VM_DIRTY_RATIO;
|
||
|
|
||
|
/*
|
||
|
* vm_dirty_bytes starts at 0 (disabled) so that it is a function of
|