| From d656a447893dccc310c975a239f482278550c3e0 Mon Sep 17 00:00:00 2001 |
| From: Jan Stancek <jstancek@redhat.com> |
| Date: Tue, 21 May 2019 10:10:44 +0200 |
| Subject: [PATCH] overcommit_memory: update for "mm: fix false-positive |
| OVERCOMMIT_GUESS failures" |
| |
| commit 8c7829b04c52 ("mm: fix false-positive OVERCOMMIT_GUESS failures") |
| changes logic of __vm_enough_memory(), simplifying it to: |
| When in GUESS mode, catch wild allocations by comparing their request |
| size to total amount of ram and swap in the system. |
| |
| Testcase currently allocates mem_total + swap_total, which doesn't trigger |
| new condition. Make it more extreme, but assuming free_total / 2 will PASS, |
| and 2*sum_total will FAIL. |
| |
| Signed-off-by: Jan Stancek <jstancek@redhat.com> |
| Acked-by: Cyril Hrubis <chrubis@suse.cz> |
| |
| Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/d656a447893dccc310c975a239f482278550c3e0] |
| Signed-off-by: He Zhe <zhe.he@windriver.com> |
| --- |
| testcases/kernel/mem/tunable/overcommit_memory.c | 11 ++++------- |
| 1 file changed, 4 insertions(+), 7 deletions(-) |
| |
| diff --git a/testcases/kernel/mem/tunable/overcommit_memory.c b/testcases/kernel/mem/tunable/overcommit_memory.c |
| index 555298f..345764d 100644 |
| --- a/testcases/kernel/mem/tunable/overcommit_memory.c |
| +++ b/testcases/kernel/mem/tunable/overcommit_memory.c |
| @@ -36,11 +36,10 @@ |
| * |
| * The program is designed to test the two tunables: |
| * |
| - * When overcommit_memory = 0, allocatable memory can't overextends |
| - * the amount of free memory. I choose the three cases: |
| + * When overcommit_memory = 0, allocatable memory can't overextend |
| + * the amount of total memory: |
| * a. less than free_total: free_total / 2, alloc should pass. |
| - * b. greater than free_total: free_total * 2, alloc should fail. |
| - * c. equal to sum_total: sum_tatal, alloc should fail |
| + * b. greater than sum_total: sum_total * 2, alloc should fail. |
| * |
| * When overcommit_memory = 1, it can alloc enough much memory, I |
| * choose the three cases: |
| @@ -164,9 +163,7 @@ static void overcommit_memory_test(void) |
| |
| update_mem(); |
| alloc_and_check(free_total / 2, EXPECT_PASS); |
| - update_mem(); |
| - alloc_and_check(free_total * 2, EXPECT_FAIL); |
| - alloc_and_check(sum_total, EXPECT_FAIL); |
| + alloc_and_check(sum_total * 2, EXPECT_FAIL); |
| |
| /* start to test overcommit_memory=1 */ |
| set_sys_tune("overcommit_memory", 1, 1); |
| -- |
| 2.7.4 |
| |