[libvirt] [PATCH v2 1/3] Add per-guest S3/S4 state configuration
Eric Blake
eblake at redhat.com
Thu Aug 2 20:36:08 UTC 2012
On 08/02/2012 06:05 AM, Martin Kletzander wrote:
> There is a new <pm/> element implemented that can control what ACPI
> sleeping states will be advertised by BIOS and allowed to be switched
> to by libvirt. The default keeps defaults on hypervisor, otherwise
> forces chosen setting.
You are proposing /domain/pm; but we also have /domain/os/bios, would
this be better as a subelement /domain/os/bios/pm, since it is related
to bios options?
> ---
> docs/schemas/domaincommon.rng | 33 ++++++++++++++++++++++++++++++
> src/conf/domain_conf.c | 44 +++++++++++++++++++++++++++++++++++++++++
> src/conf/domain_conf.h | 14 +++++++++++++
> src/libvirt_private.syms | 2 +
> 4 files changed, 93 insertions(+), 0 deletions(-)
>
> @@ -2192,6 +2195,36 @@
> </choice>
> </define>
> <!--
> + Control ACPI sleep states (dis)allowed for the domain
> + For each of the states the following rules apply:
> + on: the state will be forcefully enabled
> + off: the state will be forcefully disabled
> + not specified: hypervisor will be left to decide its defaults
> + -->
> + <define name="pm">
> + <element name="pm">
> + <interleave>
> + <optional>
> + <attribute name="s3">
Is the name 's3' too x86-centric? Remember, for
virNodeSuspendForDuration, we went with the names 'mem' (s3) and 'disk'
(s4) to give a more descriptive naming for where we were suspending. So
controlling whether s3 is advertised is really controlling whether
'suspend-to-memory' is advertised.
> +++ b/src/conf/domain_conf.h
> @@ -1372,6 +1372,14 @@ enum virDomainLifecycleCrashAction {
> VIR_DOMAIN_LIFECYCLE_CRASH_LAST
> };
>
> +enum virDomainPMState {
> + VIR_DOMAIN_PM_STATE_DEFAULT = 0,
> + VIR_DOMAIN_PM_STATE_ON,
> + VIR_DOMAIN_PM_STATE_OFF,
> +
> + VIR_DOMAIN_PM_STATE_LAST,
> +};
> +
> enum virDomainBIOSUseserial {
> VIR_DOMAIN_BIOS_USESERIAL_DEFAULT = 0,
> VIR_DOMAIN_BIOS_USESERIAL_YES,
> @@ -1618,6 +1626,11 @@ struct _virDomainDef {
> int onPoweroff;
> int onCrash;
>
> + struct {
> + int s3;
> + int s4;
Add a comment that these values are type enum virDomainPMState.
The code itself looks decent (and thanks for the test cases), but I'd
like a second opinion on whether the choice of XML naming is the best;
if we choose a different naming scheme, I think you should be able to
adapt the rest of the patch pretty easily.
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120802/cf65e6a6/attachment-0001.sig>
More information about the libvir-list
mailing list