-----Original Message-----
From: Jia Rao [mailto:
rickenrao@xxxxxxxxx]
Sent: Tuesday, 
    November 10, 2009 9:23 AM
To: 
xen-devel@xxxxxxxxxxxxxxxxxxxSubject: 
    [Xen-devel] How does the self-ballooning daemon calculate the 
    selftarget?
Hi all,
I am wondering how does the 
    self-ballooning daemon calculate the selftarget for the guest 
    OS.
>From the README of balloon driver, it seems that selftarget is 
    determined by Committed_AS in meminfo.
I did some test on tpcc 
    benchmark. the OS is initially allocated 2048MB of memory, and then I 
    enabled the selfballooning by echo 1 > /proc/xen/balloon.
The 
    configuration of xenballoond.conf is the default except that I enabled 
    self-balloon.
The following is the meminfo
MemTotal:   
       1939996 kB
MemFree:       1183888 
    kB
Buffers:         13260 kB
Cached:     
        396492 kB
SwapCached:          0 
    kB
Active:         386912 kB
Inactive:   
        213584 kB
HighTotal:           0 
    kB
HighFree:            0 kB
LowTotal: 
         1939996 kB
LowFree:       1183888 
    kB
SwapTotal:     2097136 kB
SwapFree:     
     2097132 kB
Dirty:           78432 
    kB
Writeback:           0 kB
AnonPages: 
         190668 kB
Mapped:         
     14228 kB
Slab:            53148 
    kB
PageTables:       4836 kB
NFS_Unstable:   
         0 kB
Bounce:           
       0 kB
CommitLimit:   3067132 kB
Committed_AS:   
    524484 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     
     1208 kB
VmallocChunk: 34359737159 kB
It seems that the 
    self-balloon driver is reluctant to give up free memory from the guest 
    although the Committed_AS is small. The self-ballooning did changed the 
    selftarget to something like 1.6GB but quickly changed to and fix at 
    193xxxxKB.
According to the meminfo, we should be able to give up at 
    least 800MB back to the VMM.
FYI: xen 3.3.1, linux 2.6.18.8 in both dom0 
    and domu.
Any 
  ideas?
Thanks,
Jia