]> xenbits.xensource.com Git - libvirt.git/commitdiff
Device{Attach,Detach}: Document S4 limitations
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 30 Apr 2014 13:50:34 +0000 (15:50 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 30 Apr 2014 16:25:11 +0000 (18:25 +0200)
https://bugzilla.redhat.com/show_bug.cgi?id=808463

Well, libvirt doesn't distinguish between domain poweroff and
hibernation (S4). It's hard to differentiate these two on a real
machine anyway. As a result, any device that is hot(un-)plugged is
lost (appears again) when domain is started again as from our POV
it is a fresh cold boot. Instead of doing anything wise here, we
should just document this as known limitation.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/libvirt.c

index b6c99c59c205e2e346126aadf3e632fa9adfba24..79071db4fcfa9f3489952cce15dc34c05d04b577 100644 (file)
@@ -10319,6 +10319,10 @@ virNodeGetSecurityModel(virConnectPtr conn, virSecurityModelPtr secmodel)
  * in an existing CDROM/Floppy device, however, applications are
  * recommended to use the virDomainUpdateDeviceFlag method instead.
  *
+ * Be aware that hotplug changes might not persist across a domain going
+ * into S4 state (also known as hibernation) unless you also modify the
+ * persistent domain definition.
+ *
  * Returns 0 in case of success, -1 in case of failure.
  */
 int
@@ -10374,6 +10378,10 @@ virDomainAttachDevice(virDomainPtr domain, const char *xml)
  * in an existing CDROM/Floppy device, however, applications are
  * recommended to use the virDomainUpdateDeviceFlag method instead.
  *
+ * Be aware that hotplug changes might not persist across a domain going
+ * into S4 state (also known as hibernation) unless you also modify the
+ * persistent domain definition.
+ *
  * Returns 0 in case of success, -1 in case of failure.
  */
 int
@@ -10416,6 +10424,10 @@ virDomainAttachDeviceFlags(virDomainPtr domain,
  * Destroy a virtual device attachment to backend.  This function,
  * having hot-unplug semantics, is only allowed on an active domain.
  *
+ * Be aware that hotplug changes might not persist across a domain going
+ * into S4 state (also known as hibernation) unless you also modify the
+ * persistent domain definition.
+ *
  * Returns 0 in case of success, -1 in case of failure.
  */
 int
@@ -10487,6 +10499,10 @@ virDomainDetachDevice(virDomainPtr domain, const char *xml)
  * a synchronous removal. In other words, this API may wait a bit for the
  * removal to complete in case it was not synchronous.
  *
+ * Be aware that hotplug changes might not persist across a domain going
+ * into S4 state (also known as hibernation) unless you also modify the
+ * persistent domain definition.
+ *
  * Returns 0 in case of success, -1 in case of failure.
  */
 int