On Mon, Dec 15, 2008 at 11:27:27AM +0000, Daniel P. Berrange wrote:
NACK, to these 3 lines - since we go to trouble of creating the
statefile,
we should store the FD numbers in the statefile too, instead of relying
in the linux specific /proc code.
This patch actually monitors things in /proc
which is not very portable.
I'll think about something better. Let's leave out this (and the
daemonizing patch for now) until I've cleaned this up.
> + if (vm->stdin_fd == -1 || vm->stdout_fd == -1 ||
vm->stderr_fd == -1)
> + goto next_error;
> +
> + if (((vm->stdout_watch = virEventAddHandle(vm->stdout_fd,
> + VIR_EVENT_HANDLE_READABLE |
> + VIR_EVENT_HANDLE_ERROR |
> + VIR_EVENT_HANDLE_HANGUP,
> + qemudDispatchVMEvent,
> + driver, NULL)) < 0) ||
> + ((vm->stderr_watch = virEventAddHandle(vm->stderr_fd,
> + VIR_EVENT_HANDLE_READABLE |
> + VIR_EVENT_HANDLE_ERROR |
> + VIR_EVENT_HANDLE_HANGUP,
> + qemudDispatchVMEvent,
> + driver, NULL)) < 0)) {
It is actually not neccessary to add the _ERROR or _HANGUP flags when
registering a handle. Those two conditions are implict for every read
or write watch. Yes, other code in QEMU driver adding them is bogus too.
Ahh, good
to know.
> /**
> * qemudStartup:
> *
> @@ -316,6 +454,7 @@ qemudStartup(void) {
> qemu_driver->autostartDir,
> NULL, NULL) < 0)
> goto error;
> + qemudReconnectVMs(qemu_driver);
> qemudAutostartConfigs(qemu_driver);
>
> qemuDriverUnlock(qemu_driver);
> @@ -418,11 +557,14 @@ qemudShutdown(void) {
>
> /* shutdown active VMs */
> for (i = 0 ; i < qemu_driver->domains.count ; i++) {
> + /* FIXME: don't shutdown VMs on daemon shutdown for now */
> +#if 0
> virDomainObjPtr dom = qemu_driver->domains.objs[i];
> virDomainObjLock(dom);
> if (virDomainIsActive(dom))
> qemudShutdownVMDaemon(NULL, qemu_driver, dom);
> virDomainObjUnlock(dom);
> +#endif
Yep, just remove this block of code entirely - we dont want to
shutdown VMs anymore. If someone wants to explicitly save or
shutdown VMs during machine shutdown, they're probably better
off explicitly using virsh to do it from an initscript.
Great, I'll simply
remove it.
-- Guido