On 11/23/2011 04:10 PM, Srivatsa S. Bhat wrote: > On 11/22/2011 11:56 PM, Eric Blake wrote: >> On 11/09/2011 05:05 AM, Srivatsa S. Bhat wrote: >>> Define the required interfaces to export the API. >>> >>> Signed-off-by: Srivatsa S. Bhat <srivatsa.b...@linux.vnet.ibm.com> >>> --- >>> >>> include/libvirt/libvirt.h.in | 4 ++++ >>> src/driver.h | 5 ++++ >>> src/libvirt.c | 48 >>> ++++++++++++++++++++++++++++++++++++++++++ >>> src/libvirt_public.syms | 1 + >> >> These changes are good for the first patch, in introducing the API. >> Plus see my comment in 1/2 about the hunk defining VIR_S3 (or whatever >> name we settle on) being part of this patch. >> >>> src/qemu/qemu_driver.c | 1 + >> >> This change should be shuffled into the qemu driver implementation of >> the driver backend. >> >>> src/remote/remote_driver.c | 1 + >>> src/remote/remote_protocol.x | 12 ++++++++++- >> >> These changes belong to a second patch, implementing the RPC driver >> backend. And don't forget a patch to virsh. >> >>> +++ b/include/libvirt/libvirt.h.in >>> @@ -1055,6 +1055,10 @@ unsigned long long virNodeGetFreeMemory >>> (virConnectPtr conn); >>> int virNodeGetSecurityModel (virConnectPtr conn, >>> virSecurityModelPtr >>> secmodel); >>> >>> +int virNodeSuspendForDuration (virConnectPtr conn, >>> + int state, >>> + unsigned long long >>> duration); >> >> Needs an 'unsigned int flags' argument, even if we always pass 0 for now. >> >>> +++ b/src/libvirt.c >>> @@ -6303,6 +6303,54 @@ error: >>> } >>> >>> /** >>> + * virNodeSuspendForDuration: >>> + * @conn: pointer to the hypervisor connection >>> + * @state: the state to which the host must be suspended to, >>> + * such as: VIR_S3 (Suspend-to-RAM) >>> + * VIR_S4 (Suspend-to-Disk) >> >> Is this a bitmask or a linear list? I guess a list makes more sense. >> Also, some machines support a hybrid between S3 and S4 (pm-is-supported >> --suspend-hybrid), which saves state to disk like S4 but then drops to >> S3 for faster resume as long as power is present. Perhaps a hybrid >> state is deserving of a third value in the enum? >> > > That would need a corresponding change in virGetPMCapabilities etc (which > was introduced in the other patch which Daniel Veillard pushed already). > http://www.redhat.com/archives/libvir-list/2011-November/msg01155.html > > Perhaps, I'll send a companion patch to add the hybrid-suspend discovery > to that, and then base the next version of this patchset on that. >
Actually thinking about it, I don't see how that would be useful for a libvirt managed host. The hybrid suspend feature was designed keeping laptops in mind, which when suspended with the power supply turned off (and hence powered by only batteries), the laptops could lose power and power off, and hence in that case resuming the saved contents from disk would be beneficial. I doubt if anyone would be seriously interested in running virtualization software on laptops and managing them via libvirt, rather than using servers for that purpose (which have continuous power-supply). Though I have already written a patch to add the hybrid-suspend capability discovery to libvirt and export it in the XML along with S3 and S4, I would rather prefer not to send that patch if nobody is going to use it. -- Regards, Srivatsa S. Bhat IBM Linux Technology Center -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list