diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2013-05-14 13:56:42 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2013-05-15 10:27:50 -0400 |
commit | 37d46e152e4c71cd772085912f1c7bf06839f739 (patch) | |
tree | ee31e42aca07640b538385c9b6b2acce315c5716 | |
parent | ed4f346a008edda8ee08ffcdc642691847636954 (diff) |
xen/tmem: Don't use self[ballooning|shrinking] if frontswap is off.
There is no point. We would just squeeze the guest to put more and
more pages in the swap disk without any purpose.
The only time it makes sense to use the selfballooning and shrinking
is when frontswap is being utilized.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
-rw-r--r-- | drivers/xen/tmem.c | 8 | ||||
-rw-r--r-- | drivers/xen/xen-selfballoon.c | 15 |
3 files changed, 16 insertions, 10 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 3de01edca3ea..6e3b18a8afc6 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -3014,7 +3014,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3014 | 3014 | ||
3015 | tmem.frontswap=0|1 [KNL, XEN] | 3015 | tmem.frontswap=0|1 [KNL, XEN] |
3016 | Default is on (1). Disable the usage of the frontswap | 3016 | Default is on (1). Disable the usage of the frontswap |
3017 | API to send swap pages to the hypervisor. | 3017 | API to send swap pages to the hypervisor. If disabled |
3018 | the selfballooning and selfshrinking are force disabled. | ||
3018 | 3019 | ||
3019 | tmem.selfballooning=0|1 [KNL, XEN] | 3020 | tmem.selfballooning=0|1 [KNL, XEN] |
3020 | Default is on (1). Disable the driving of swap pages | 3021 | Default is on (1). Disable the driving of swap pages |
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c index c1df0ff89878..18e8bd8fa947 100644 --- a/drivers/xen/tmem.c +++ b/drivers/xen/tmem.c | |||
@@ -403,6 +403,14 @@ static int xen_tmem_init(void) | |||
403 | } | 403 | } |
404 | #endif | 404 | #endif |
405 | #ifdef CONFIG_XEN_SELFBALLOONING | 405 | #ifdef CONFIG_XEN_SELFBALLOONING |
406 | /* | ||
407 | * There is no point of driving pages to the swap system if they | ||
408 | * aren't going anywhere in tmem universe. | ||
409 | */ | ||
410 | if (!frontswap) { | ||
411 | selfshrinking = false; | ||
412 | selfballooning = false; | ||
413 | } | ||
406 | xen_selfballoon_init(selfballooning, selfshrinking); | 414 | xen_selfballoon_init(selfballooning, selfshrinking); |
407 | #endif | 415 | #endif |
408 | return 0; | 416 | return 0; |
diff --git a/drivers/xen/xen-selfballoon.c b/drivers/xen/xen-selfballoon.c index 5d637e2b1b9f..f70984a892aa 100644 --- a/drivers/xen/xen-selfballoon.c +++ b/drivers/xen/xen-selfballoon.c | |||
@@ -53,15 +53,12 @@ | |||
53 | * System configuration note: Selfballooning should not be enabled on | 53 | * System configuration note: Selfballooning should not be enabled on |
54 | * systems without a sufficiently large swap device configured; for best | 54 | * systems without a sufficiently large swap device configured; for best |
55 | * results, it is recommended that total swap be increased by the size | 55 | * results, it is recommended that total swap be increased by the size |
56 | * of the guest memory. Also, while technically not required to be | 56 | * of the guest memory. Note, that selfballooning should be disabled by default |
57 | * configured, it is highly recommended that frontswap also be configured | 57 | * if frontswap is not configured. Similarly selfballooning should be enabled |
58 | * and enabled when selfballooning is running. So, selfballooning | 58 | * by default if frontswap is configured and can be disabled with the |
59 | * is disabled by default if frontswap is not configured and can only | 59 | * "tmem.selfballooning=0" kernel boot option. Finally, when frontswap is |
60 | * be enabled with the "tmem.selfballooning=1" kernel boot option; similarly | 60 | * configured, frontswap-selfshrinking can be disabled with the |
61 | * selfballooning is enabled by default if frontswap is configured and | 61 | * "tmem.selfshrink=0" kernel boot option. |
62 | * can be disabled with the "tmem.selfballooning=0" kernel boot option. Finally, | ||
63 | * when frontswap is configured,frontswap-selfshrinking can be disabled | ||
64 | * with the "tmem.selfshrink=0" kernel boot option. | ||
65 | * | 62 | * |
66 | * Selfballooning is disallowed in domain0 and force-disabled. | 63 | * Selfballooning is disallowed in domain0 and force-disabled. |
67 | * | 64 | * |