[libvirt] [PATCH 13/17] qemu: Let tests override waiting time for device unplug

Jiri Denemark jdenemar at redhat.com
Thu Aug 1 19:28:22 UTC 2013


We don't want tests to wait 5 seconds for an event which we know will
never come.
---
 src/Makefile.am             |  1 +
 src/qemu/qemu_hotplug.c     | 10 ++++++----
 src/qemu/qemu_hotplugpriv.h | 31 +++++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 4 deletions(-)
 create mode 100644 src/qemu/qemu_hotplugpriv.h

diff --git a/src/Makefile.am b/src/Makefile.am
index 88dc5fe..3f410da 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -633,6 +633,7 @@ QEMU_DRIVER_SOURCES =							\
 		qemu/qemu_cgroup.c qemu/qemu_cgroup.h			\
 		qemu/qemu_hostdev.c qemu/qemu_hostdev.h			\
 		qemu/qemu_hotplug.c qemu/qemu_hotplug.h			\
+		qemu/qemu_hotplugpriv.h					\
 		qemu/qemu_conf.c qemu/qemu_conf.h			\
 		qemu/qemu_process.c qemu/qemu_process.h			\
 		qemu/qemu_processpriv.h					\
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index f8bcc9a..f9d75dc 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -25,6 +25,7 @@
 #include <config.h>
 
 #include "qemu_hotplug.h"
+#include "qemu_hotplugpriv.h"
 #include "qemu_capabilities.h"
 #include "qemu_domain.h"
 #include "qemu_command.h"
@@ -53,6 +54,10 @@
 #define VIR_FROM_THIS VIR_FROM_QEMU
 #define CHANGE_MEDIA_RETRIES 10
 
+/* Wait up to 5 seconds for device removal to finish. */
+unsigned long long qemuDomainRemoveDeviceWaitTime = 1000ull * 5;
+
+
 int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
                                    virDomainObjPtr vm,
                                    virDomainDiskDefPtr disk,
@@ -2679,9 +2684,6 @@ qemuDomainRemoveDevice(virQEMUDriverPtr driver,
 }
 
 
-/* Wait up to 5 seconds for device removal to finish. */
-#define QEMU_REMOVAL_WAIT_TIME (1000ull * 5)
-
 static void
 qemuDomainMarkDeviceForRemoval(virDomainObjPtr vm,
                                virDomainDeviceInfoPtr info)
@@ -2718,7 +2720,7 @@ qemuDomainWaitForDeviceRemoval(virDomainObjPtr vm)
 
     if (virTimeMillisNow(&until) < 0)
         return -1;
-    until += QEMU_REMOVAL_WAIT_TIME;
+    until += qemuDomainRemoveDeviceWaitTime;
 
     while (priv->unpluggingDevice) {
         if (virCondWaitUntil(&priv->unplugFinished,
diff --git a/src/qemu/qemu_hotplugpriv.h b/src/qemu/qemu_hotplugpriv.h
new file mode 100644
index 0000000..e4a1164
--- /dev/null
+++ b/src/qemu/qemu_hotplugpriv.h
@@ -0,0 +1,31 @@
+/*
+ * qemu_hotplugpriv.h: private declarations for QEMU device hotplug management
+ *
+ * Copyright (C) 2013 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef __QEMU_HOTPLUGPRIV_H__
+# define __QEMU_HOTPLUGPRIV_H__
+
+/*
+ * This header file should never be used outside unit tests.
+ */
+
+unsigned long long qemuDomainRemoveDeviceWaitTime;
+
+#endif /* __QEMU_HOTPLUGPRIV_H__ */
-- 
1.8.3.2




More information about the libvir-list mailing list