when use libvirt0.9.4 ,then memStats() just output a '{ }'.

Generally, it means your qemu returns empty result for
monitor command query-balloon. Could you check the debug
log to find out what the qemu monitor command returns
actually?

libvirt > 0.9.4  memStats() can get  the memory stats,but it seems that the value does not match guest memory usage:
virsh # version 
Compiled against library: libvir 0.9.11
Using library: libvir 0.9.11
Using API: QEMU 0.9.11
Running hypervisor: QEMU 1.0.94

virsh # dommemstat centos
actual 524288
rss 276252

while in the 'centos' guest:
 [root@centos-guest ~]# free -k
             total       used       free     shared    buffers     cached
Mem:        511148      84784     426364          0       5708      32664
-/+ buffers/cache:      46412     464736
Swap:      2064376          0    2064376

what does the 'rss'  mean?  thanks.