From 062a7ea71435396bc9c9b1c7f642e749419a8371 Mon Sep 17 00:00:00 2001 From: Stefan Reiter Date: Mon, 28 Oct 2019 14:30:41 +0100 Subject: [PATCH] hugepages: fix memory size checking The codepath for "any" hugepages did not check if memory size was even, leading to the code below trying to allocate half a hugepage (e.g. VM with 2049MiB RAM would lead to 1024.5 2kB hugepages). Also improve error message for systems with only 1GB hugepages enabled. Signed-off-by: Stefan Reiter --- PVE/QemuServer/Memory.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer/Memory.pm b/PVE/QemuServer/Memory.pm index 5aceabf2..04f80183 100644 --- a/PVE/QemuServer/Memory.pm +++ b/PVE/QemuServer/Memory.pm @@ -402,10 +402,11 @@ sub hugepages_size { if ($gb_exists && ($size % 1024 == 0)) { return 1024; } elsif (-d "/sys/kernel/mm/hugepages/hugepages-2048kB") { + die "memory size must be even to use hugepages\n" if $size % 2 != 0; return 2; } - die "your system doesn't support hugepages for memory size $size\n" + die "your system doesn't support hugepages for memory size $size (1GB hugepages would be supported)\n" if $gb_exists; die "your system doesn't support hugepages\n";