g_free(mon->domainName);
}
+#define QEMU_DEFAULT_MONITOR_WAIT 30
static int
qemuMonitorOpenUnix(const char *monitor,
pid_t cpid,
- bool retry,
- unsigned long long timeout)
+ bool retry)
{
struct sockaddr_un addr;
VIR_AUTOCLOSE monfd = -1;
}
if (retry) {
- if (virTimeBackOffStart(&timebackoff, 1, timeout * 1000) < 0)
+ if (virTimeBackOffStart(&timebackoff, 1, QEMU_DEFAULT_MONITOR_WAIT * 1000) < 0)
return -1;
while (virTimeBackOffWait(&timebackoff)) {
ret = connect(monfd, (struct sockaddr *)&addr, sizeof(addr));
}
-#define QEMU_DEFAULT_MONITOR_WAIT 30
-
/**
* qemuMonitorOpen:
* @vm: domain object
* @config: monitor configuration
- * @timeout: number of seconds to add to default timeout
* @cb: monitor event handles
*
- * Opens the monitor for running qemu. It may happen that it
- * takes some time for qemu to create the monitor socket (e.g.
- * because kernel is zeroing configured hugepages), therefore we
- * wait up to default + timeout seconds for the monitor to show
- * up after which a failure is claimed.
+ * Opens the monitor for running qemu.
*
* Returns monitor object, NULL on error.
*/
qemuMonitorOpen(virDomainObj *vm,
virDomainChrSourceDef *config,
bool retry,
- unsigned long long timeout,
GMainContext *context,
qemuMonitorCallbacks *cb)
{
VIR_AUTOCLOSE fd = -1;
qemuMonitor *ret = NULL;
- timeout += QEMU_DEFAULT_MONITOR_WAIT;
-
if (config->type != VIR_DOMAIN_CHR_TYPE_UNIX) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unable to handle monitor type: %s"),
}
virObjectUnlock(vm);
- fd = qemuMonitorOpenUnix(config->data.nix.path,
- vm->pid, retry, timeout);
+ fd = qemuMonitorOpenUnix(config->data.nix.path, vm->pid, retry);
virObjectLock(vm);
if (fd < 0)
qemuMonitor *qemuMonitorOpen(virDomainObj *vm,
virDomainChrSourceDef *config,
bool retry,
- unsigned long long timeout,
GMainContext *context,
qemuMonitorCallbacks *cb)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(5);
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
void qemuMonitorWatchDispose(void);
bool qemuMonitorWasDisposed(void);
{
qemuDomainObjPrivate *priv = vm->privateData;
qemuMonitor *mon = NULL;
- unsigned long long timeout = 0;
if (qemuSecuritySetDaemonSocketLabel(driver->securityManager, vm->def) < 0) {
VIR_ERROR(_("Failed to set security context for monitor for %s"),
return -1;
}
- /* When using hugepages, kernel zeroes them out before
- * handing them over to qemu. This can be very time
- * consuming. Therefore, add a second to timeout for each
- * 1GiB of guest RAM. */
- timeout = virDomainDefGetMemoryTotal(vm->def) / (1024 * 1024);
-
ignore_value(virTimeMillisNow(&priv->monStart));
mon = qemuMonitorOpen(vm,
priv->monConfig,
false,
- timeout,
virEventThreadGetContext(priv->eventThread),
&monitorCallbacks);
proc->vm->pid = proc->pid;
- if (!(proc->mon = qemuMonitorOpen(proc->vm, &monConfig, true, 0,
+ if (!(proc->mon = qemuMonitorOpen(proc->vm, &monConfig, true,
virEventThreadGetContext(proc->eventThread),
&callbacks)))
return -1;