[tip:tools/kvm] kvm tools: Make host_ram_size() more robust

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit-ID:  817aea43d503d085217cdba89c707ea66d432e06
Gitweb:     http://git.kernel.org/tip/817aea43d503d085217cdba89c707ea66d432e06
Author:     Pekka Enberg <penberg@xxxxxxxxxx>
AuthorDate: Wed, 18 May 2011 21:41:36 +0300
Committer:  Pekka Enberg <penberg@xxxxxxxxxx>
CommitDate: Wed, 18 May 2011 21:41:36 +0300

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: <born2befrag@xxxxxxxxx>
Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx>
---
 tools/kvm/kvm-run.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c
index ba8e5ce..5451dfe 100644
--- a/tools/kvm/kvm-run.c
+++ b/tools/kvm/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;
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux