I have sent a similar email about this problem. But I did not describe carefully, so I would like to explain it in more details.
I am using 'virsh setmem' to ajust vm memory online. However, I don't know what is the lowerlimit that can be set to. And I try to use 'virsh dommemstat' to get 'unused' memory so that I can calculate the lowerlimit memory with this value, but it doesn't work when it comes to windows systems as I cannot set vm memory down to 'available - unused' in windows system.
I suppose it's caches memory that causes this problem, so I upgrade my libvirt & qemu in order to get 'stat_disk_caches'. Although I upgrade libvirt to v4.10.0, qemu upgrade to v4.1.0, I cannot get this value.
In summary, I came across two problems. How can I know the exact lowerlimit memory that can be set to in one vm? And if I need 'stat_disk_caches' value, how can I get it properly?

My libvirt version: v4.10.0, qemu version:v4.1.0, hypervisor working on centos7.6 system.