For low-memory domains (roughly under 400MB) our automatic memory limit computation comes up with a limit that's too low. This is because the 0.5 multiplication does not add enough for such small values. Let's increase the constant part of the computation to fix this. --- src/qemu/qemu_domain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 28b8ee4..c38c86e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2197,7 +2197,7 @@ qemuDomainMemoryLimit(virDomainDefPtr def) * limit' has been chosen: * (1 + k) * (domain memory + total video memory) + (32MB for * cache per each disk) + F - * where k = 0.5 and F = 200MB. The cache for disks is important as + * where k = 0.5 and F = 400MB. The cache for disks is important as * kernel cache on the host side counts into the RSS limit. * Moreover, VFIO requires some amount for IO space. Alex Williamson * suggested adding 1GiB for IO space just to be safe (some finer @@ -2212,7 +2212,7 @@ qemuDomainMemoryLimit(virDomainDefPtr def) mem += def->videos[i]->vram; mem *= 1.5; mem += def->ndisks * 32768; - mem += 204800; + mem += 409600; for (i = 0; i < def->nhostdevs; i++) { virDomainHostdevDefPtr hostdev = def->hostdevs[i]; -- 1.8.2.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list