diff mbox series

KVM: selftests: do not require 64GB in set_memory_region_test

Message ID 20210701160425.33666-1-borntraeger@de.ibm.com (mailing list archive)
State New, archived
Headers show
Series KVM: selftests: do not require 64GB in set_memory_region_test | expand

Commit Message

Christian Borntraeger July 1, 2021, 4:04 p.m. UTC
Unless the user sets overcommit_memory or has plenty of swap, the latest
changes to the testcase will result in ENOMEM failures for hosts with
less than 64GB RAM. As we do not use much of the allocated memory, we
can use MAP_NORESERVE to avoid this error.

Cc: Zenghui Yu <yuzenghui@huawei.com>
Cc: vkuznets@redhat.com
Cc: wanghaibin.wang@huawei.com
Cc: stable@vger.kernel.org
Fixes: 309505dd5685 ("KVM: selftests: Fix mapping length truncation in m{,un}map()")
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 tools/testing/selftests/kvm/set_memory_region_test.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Zenghui Yu July 2, 2021, 6:49 a.m. UTC | #1
On 2021/7/2 0:04, Christian Borntraeger wrote:
> Unless the user sets overcommit_memory or has plenty of swap, the latest
> changes to the testcase will result in ENOMEM failures for hosts with
> less than 64GB RAM. As we do not use much of the allocated memory, we
> can use MAP_NORESERVE to avoid this error.

Had a go on arm64:

Tested-by: Zenghui Yu <yuzenghui@huawei.com>

Thanks,
Zenghui
diff mbox series

Patch

diff --git a/tools/testing/selftests/kvm/set_memory_region_test.c b/tools/testing/selftests/kvm/set_memory_region_test.c
index d8812f27648c..d31f54ac4e98 100644
--- a/tools/testing/selftests/kvm/set_memory_region_test.c
+++ b/tools/testing/selftests/kvm/set_memory_region_test.c
@@ -377,7 +377,8 @@  static void test_add_max_memory_regions(void)
 		(max_mem_slots - 1), MEM_REGION_SIZE >> 10);
 
 	mem = mmap(NULL, (size_t)max_mem_slots * MEM_REGION_SIZE + alignment,
-		   PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+		   PROT_READ | PROT_WRITE,
+		   MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0);
 	TEST_ASSERT(mem != MAP_FAILED, "Failed to mmap() host");
 	mem_aligned = (void *)(((size_t) mem + alignment - 1) & ~(alignment - 1));