From 2c32196a2f90f9a38ca0487e79886b08b86cc7a5 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Fri, 29 Sep 2006 16:12:08 +0000 Subject: [PATCH] * src/xen_internal.c: fix for system with page size != 4k Daniel --- ChangeLog | 4 ++++ src/xen_internal.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6293f9ffe4..38a5764085 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Sep 29 17:16:40 CEST 2006 Daniel Veillard + + * src/xen_internal.c: fix for system with page size != 4k + Fri Sep 29 13:05:12 CEST 2006 Daniel Veillard * docs/bugs.html docs/libvir.html: added pointers on how to report diff --git a/src/xen_internal.c b/src/xen_internal.c index 37315edc8a..31e3e546f2 100644 --- a/src/xen_internal.c +++ b/src/xen_internal.c @@ -1489,6 +1489,13 @@ xenHypervisorGetDomInfo(virConnectPtr conn, int id, virDomainInfoPtr info) { xen_getdomaininfo dominfo; int ret; + static int kb_per_pages = 0; + + if (kb_per_pages == 0) { + kb_per_pages = sysconf(_SC_PAGESIZE) / 1024; + if (kb_per_pages <= 0) + kb_per_pages = 4; + } if ((conn == NULL) || (conn->handle < 0) || (info == NULL)) return (-1); @@ -1527,8 +1534,8 @@ xenHypervisorGetDomInfo(virConnectPtr conn, int id, virDomainInfoPtr info) * kilobytes from page counts */ info->cpuTime = XEN_GETDOMAININFO_CPUTIME(dominfo); - info->memory = XEN_GETDOMAININFO_TOT_PAGES(dominfo) * 4; - info->maxMem = XEN_GETDOMAININFO_MAX_PAGES(dominfo) * 4; + info->memory = XEN_GETDOMAININFO_TOT_PAGES(dominfo) * kb_per_pages; + info->maxMem = XEN_GETDOMAININFO_MAX_PAGES(dominfo) * kb_per_pages; info->nrVirtCpu = XEN_GETDOMAININFO_CPUCOUNT(dominfo); return (0); }