From d63c5ce6c5f95db495b58884f5a9b130ba11be50 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Wed, 18 May 2011 21:41:36 +0300 Subject: [PATCH] kvm tools: Make host_ram_size() more robust This patch fixes cryptic "out of memory" errors on hosts where sysconf() fails by defaulting to MIN_RAM_SIZE_MB. Reported-by: Signed-off-by: Pekka Enberg --- kvm-run.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kvm-run.c b/kvm-run.c index ba8e5ce..5451dfe 100644 --- a/kvm-run.c +++ b/kvm-run.c @@ -267,8 +267,16 @@ static u64 host_ram_size(void) long nr_pages; nr_pages = sysconf(_SC_PHYS_PAGES); + if (nr_pages < 0) { + warning("sysconf(_SC_PHYS_PAGES) failed"); + return 0; + } page_size = sysconf(_SC_PAGE_SIZE); + if (page_size < 0) { + warning("sysconf(_SC_PAGE_SIZE) failed"); + return 0; + } return (nr_pages * page_size) >> MB_SHIFT; } @@ -287,6 +295,8 @@ static u64 get_ram_size(int nr_cpus) ram_size = 64 * (nr_cpus + 3); available = host_ram_size() * RAM_SIZE_RATIO; + if (!available) + available = MIN_RAM_SIZE_MB; if (ram_size > available) ram_size = available;