From 9d243e08955a239e965fa626a1347eb27839bda6 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Mon, 22 Feb 2016 17:03:21 -0700 Subject: [PATCH] conf: add 'state' attribute to feature Most hypervisors use Hardware Assisted Paging by default and don't require specifying the feature in domain conf. But some hypervisors support disabling HAP on a per-domain basis. To enable HAP by default yet provide a knob to disable it, extend the feature with a 'state=on|off' attribute, similar to and features. In the absence of , the hypervisor default (on) is used. without the state attribute would be the same as for backwards compatibility. And of course disables hap. Signed-off-by: Jim Fehlig --- docs/formatdomain.html.in | 6 ++++-- docs/schemas/domaincommon.rng | 6 +++++- src/conf/domain_conf.c | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 423dcdc1e2..71ffe75045 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -1494,8 +1494,10 @@ Interrupt) for the guest.
hap
-
Enable use of Hardware Assisted Paging if available in - the hardware. +
Depending on the state attribute (values on, + off) enable or disable use of Hardware Assisted Paging. + The default is on if the hypervisor detects availability + of Hardware Assisted Paging.
viridian
Enable Viridian hypervisor extensions for paravirtualizing diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 0eb1e5ad72..da6de40f87 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -4144,7 +4144,11 @@ - + + + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 43b2f1f005..d5d9ff702f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -15497,7 +15497,6 @@ virDomainDefParseXML(xmlDocPtr xml, /* fallthrough */ case VIR_DOMAIN_FEATURE_ACPI: case VIR_DOMAIN_FEATURE_PAE: - case VIR_DOMAIN_FEATURE_HAP: case VIR_DOMAIN_FEATURE_VIRIDIAN: case VIR_DOMAIN_FEATURE_PRIVNET: case VIR_DOMAIN_FEATURE_HYPERV: @@ -15522,6 +15521,7 @@ virDomainDefParseXML(xmlDocPtr xml, ctxt->node = node; break; + case VIR_DOMAIN_FEATURE_HAP: case VIR_DOMAIN_FEATURE_PMU: case VIR_DOMAIN_FEATURE_PVSPINLOCK: case VIR_DOMAIN_FEATURE_VMPORT: @@ -22288,7 +22288,6 @@ virDomainDefFormatInternal(virDomainDefPtr def, switch ((virDomainFeature) i) { case VIR_DOMAIN_FEATURE_ACPI: case VIR_DOMAIN_FEATURE_PAE: - case VIR_DOMAIN_FEATURE_HAP: case VIR_DOMAIN_FEATURE_VIRIDIAN: case VIR_DOMAIN_FEATURE_PRIVNET: switch ((virTristateSwitch) def->features[i]) { @@ -22310,6 +22309,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, break; + case VIR_DOMAIN_FEATURE_HAP: case VIR_DOMAIN_FEATURE_PMU: case VIR_DOMAIN_FEATURE_PVSPINLOCK: case VIR_DOMAIN_FEATURE_VMPORT: