libxl: add current_memkb to libxl_dominfo
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 22 Sep 2010 16:23:22 +0000 (17:23 +0100)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 22 Sep 2010 16:23:22 +0000 (17:23 +0100)
currently xcinfo2xlinfo reads tot_pages and uses that data to calculate
max_memkb, while tot_pages is the memory currently used by the domain
and max_pages is the theoretical maximum.
This patch calculates max_memkb from max_pages and introduces
current_memkb to store the current memory usage.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c
tools/libxl/libxl.idl
tools/libxl/xl_cmdimpl.c

index 59c08f80fe377c44565c271d7865ed3cdfebb8c0..ab92e53a4147ca2d2ed7462368b5ae0f2b2b7f57 100644 (file)
@@ -558,7 +558,8 @@ static void xcinfo2xlinfo(const xc_domaininfo_t *xcinfo,
     else
         xlinfo->shutdown_reason  = ~0;
 
-    xlinfo->max_memkb = PAGE_TO_MEMKB(xcinfo->tot_pages);
+    xlinfo->current_memkb = PAGE_TO_MEMKB(xcinfo->tot_pages);
+    xlinfo->max_memkb = PAGE_TO_MEMKB(xcinfo->max_pages);
     xlinfo->cpu_time = xcinfo->cpu_time;
     xlinfo->vcpu_max_id = xcinfo->max_vcpu_id;
     xlinfo->vcpu_online = xcinfo->nr_online_vcpus;
index fd2afd373aaf3805cc3b920daad921eea853d14c..dfd565b99828118e4b0b450d2bdd739991dadaf7 100644 (file)
@@ -38,6 +38,7 @@ libxl_dominfo = Struct("dominfo",[
 
 Otherwise set to a value guaranteed not to clash with any valid
 SHUTDOWN_* constant."""),
+    ("current_memkb",   uint64),
     ("max_memkb",   uint64),
     ("cpu_time",    uint64),
     ("vcpu_max_id", uint32),
index 9b4cb60e479625a52047eeeb9e76c7cfaec61e25..0ace4350f4fd6754d4f9680239e08d0efdc067fa 100644 (file)
@@ -2218,7 +2218,7 @@ static void list_domains(int verbose, const libxl_dominfo *info, int nb_domain)
         printf("%-40s %5d %5lu %5d     %c%c%c%c%c%c  %8.1f",
                 domname,
                 info[i].domid,
-                (unsigned long) (info[i].max_memkb / 1024),
+                (unsigned long) (info[i].current_memkb / 1024),
                 info[i].vcpu_online,
                 info[i].running ? 'r' : '-',
                 info[i].blocked ? 'b' : '-',