hyperv: Map Limit to max_memory and VirtualQuantity to cur_balloon

Hyper-V uses its own specific memory management so no mapping is going to
be perfect. However, it is more correct to map Limit to max_memory (it
really is the upper limit of what the VM may potentially use) and keep
cur_balloon equal to total_memory.

The typical value returned from Hyper-V in Limit is 1 TiB, which is not
really going to work if interpreted as "startup memory" to be ballooned
away later.

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
This commit is contained in:
Ladi Prosek 2017-10-06 08:47:35 +02:00 committed by John Ferlan
parent 5ae2d9c259
commit a765e3094d

View File

@ -919,8 +919,10 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
def->description = virBufferContentAndReset(&buf);
}
virDomainDefSetMemoryTotal(def, memorySettingData->data.common->Limit * 1024); /* megabyte to kilobyte */
def->mem.cur_balloon = memorySettingData->data.common->VirtualQuantity * 1024; /* megabyte to kilobyte */
/* mebibytes to kibibytes */
def->mem.max_memory = memorySettingData->data.common->Limit * 1024;
def->mem.cur_balloon = memorySettingData->data.common->VirtualQuantity * 1024;
virDomainDefSetMemoryTotal(def, memorySettingData->data.common->VirtualQuantity * 1024);
if (virDomainDefSetVcpusMax(def,
processorSettingData->data.common->VirtualQuantity,