[libvirt] freecell gives out bytes instead of kilobytes

Gerrit Slomma roadrunner_gs at web.de
Thu Apr 2 22:04:05 UTC 2009


The virsh-command freecell hands out bytes but affixes those with kB.
The error ist found in virsh.c on line 1663 and following.
I have corrected this and altered the output to the method i chose for 
virt-manager - in the days of 96 GB per socket (Nehalem-EP) no one cares 
even about a fraction of a Megabyte.

--- a/src/virsh.c        2009-04-02 17:45:50.000000000 +0200
+++ b/src/virsh.c 2009-04-02 23:35:54.000000000 +0200
@@ -1661,10 +1661,23 @@
     }

     if (cell == -1)
-        vshPrint(ctl, "%s: %llu kB\n", _("Total"), memory);
+       if (memory < 10*1024*1204*1024)
+               {
+                       vshPrint(ctl, "%s: %.0f MB\n", _("Total"), 
(float)memory/1024/1024);
+               }
+               else
+               {
+                       vshPrint(ctl, "%s: %.2f GB\n", _("Total"), 
(float)memory/1024/1024/1024);
+               }
     else
-        vshPrint(ctl, "%d: %llu kB\n", cell, memory);
-
+       if (memory < 10*1024*1204*1024)
+               {
+               vshPrint(ctl, "%d: %.0f MB\n", cell, 
(float)memory/1024/1024);
+               }
+       else
+       {
+               vshPrint(ctl, "%d: %.2f GB\n", cell, 
(float)memory/1024/1024/1024);
+       }
     return TRUE;
 }

eg:

rr016# virsh freecell; free -m
0: 24 MB

             total       used       free     shared    buffers     cached
Mem:          3884       3859         24          0         60       1306
-/+ buffers/cache:       2492       1392
Swap:         2047        248       1798

rr017# virsh freecell; free -m
0: 1490 MB

             total       used       free     shared    buffers     cached
Mem:          2991       1501       1489          0        100       1283
-/+ buffers/cache:        117       2873
Swap:         2047          0       2047

rr019# virsh freecell; free -m
0: 1616 MB

             total       used       free     shared    buffers     cached
Mem:          3952       2337       1615          0          5       1209
-/+ buffers/cache:       1121       2831
Swap:         2047          0       2047

Is this okay with you? Or just the fix for the output removing the 
kB-suffix.




More information about the libvir-list mailing list