libxl: add support for memballoon device

All Xen PV and HVM with PV driver support a memory balloon device,
which cannot be disabled through the toolstack. Model the device
in the libxl driver, similar to the recently removed xend-based
driver.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Jim Fehlig 2018-04-09 18:15:17 -06:00
parent 2203cea782
commit dffe584aa4
114 changed files with 146 additions and 0 deletions

View File

@ -626,6 +626,30 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
return -1;
}
/* only the 'xen' balloon device model is supported */
if (def->memballoon) {
int model = def->memballoon->model;
switch ((virDomainMemballoonModel)model) {
case VIR_DOMAIN_MEMBALLOON_MODEL_XEN:
break;
case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unsupported balloon device model '%s'"),
virDomainMemballoonModelTypeToString(model));
return -1;
case VIR_DOMAIN_MEMBALLOON_MODEL_NONE:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
"%s",
_("balloon device cannot be disabled"));
return -1;
case VIR_DOMAIN_MEMBALLOON_MODEL_LAST:
default:
virReportEnumRangeError(virDomainMemballoonModel, model);
return -1;
}
}
return 0;
}

View File

@ -413,6 +413,16 @@ libxlDomainDefPostParse(virDomainDefPtr def,
def->features[VIR_DOMAIN_FEATURE_ACPI] = VIR_TRISTATE_SWITCH_ON;
}
/* add implicit balloon device */
if (def->memballoon == NULL) {
virDomainMemballoonDefPtr memballoon;
if (VIR_ALLOC(memballoon) < 0)
return -1;
memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_XEN;
def->memballoon = memballoon;
}
return 0;
}

View File

@ -24,5 +24,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -32,5 +32,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -38,5 +38,6 @@
<video>
<model type='xen' vram='4096' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -30,5 +30,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -53,5 +53,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -46,5 +46,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -49,5 +49,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -49,5 +49,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -29,5 +29,6 @@
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -46,5 +46,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -47,5 +47,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -51,5 +51,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -58,5 +58,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -52,5 +52,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -52,5 +52,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -52,5 +52,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -48,5 +48,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -48,5 +48,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -47,5 +47,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -47,5 +47,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -46,5 +46,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -46,5 +46,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -46,5 +46,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -31,5 +31,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -32,5 +32,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -31,5 +31,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -52,5 +52,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -37,5 +37,6 @@
<address domain='0x0000' bus='0x01' slot='0x13' function='0x0'/>
</source>
</hostdev>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -24,5 +24,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -31,5 +31,6 @@
<video>
<model type='xen' vram='4096' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -31,5 +31,6 @@
<video>
<model type='xen' vram='4096' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -36,5 +36,6 @@
<video>
<model type='xen' vram='4096' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -25,5 +25,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -29,5 +29,6 @@
</channel>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -30,5 +30,6 @@
</channel>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -60,5 +60,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -41,5 +41,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -51,5 +51,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -51,5 +51,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -51,5 +51,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -60,5 +60,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -61,5 +61,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -60,5 +60,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -57,5 +57,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -55,5 +55,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -58,5 +58,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -60,5 +60,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -77,5 +77,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -30,5 +30,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -30,5 +30,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -30,5 +30,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -26,5 +26,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -51,5 +51,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -31,5 +31,6 @@
<address bus='1' device='3'/>
</source>
</hostdev>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -27,5 +27,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -44,5 +44,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -57,5 +57,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -41,5 +41,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -28,5 +28,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -28,5 +28,6 @@
</console>
<input type='mouse' bus='xen'/>
<input type='keyboard' bus='xen'/>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -50,5 +50,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -48,5 +48,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -48,5 +48,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -48,5 +48,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -49,5 +49,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -53,5 +53,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -56,5 +56,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -54,5 +54,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -58,5 +58,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

View File

@ -58,5 +58,6 @@
<video>
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
</video>
<memballoon model='xen'/>
</devices>
</domain>

Some files were not shown because too many files have changed in this diff Show More