
On 04/30/2014 07:55 AM, Michal Privoznik wrote:
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.
Umm, doesn't qemu give us a different event when a guest stops due to S4 than when it stops due to power off? Yeah, we don't do a good job of tracking that a guest is in S4 (since the qemu process no longer exists), but that's something that could be improved.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/libvirt.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/src/libvirt.c b/src/libvirt.c index b6c99c5..20297eb 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -10319,6 +10319,9 @@ virNodeGetSecurityModel(virConnectPtr conn, virSecurityModelPtr secmodel) * in an existing CDROM/Floppy device, however, applications are * recommended to use the virDomainUpdateDeviceFlag method instead. * + * Be aware that a device that is hotplugged may disappear if + * domain resumes from the S4 state (also known as hibernation).
Maybe be a bit more positive: 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. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org