[libvirt] [PATCH v3 4/5] Add a watchdog action `dump'
Hu Tao
hutao at cn.fujitsu.com
Thu Dec 2 00:50:58 UTC 2010
On Tue, Nov 30, 2010 at 03:21:36PM -0700, Eric Blake wrote:
<...snip...>
> >
> > -libvirt_qemu_la_SOURCES = libvirt-qemu.c
> > +libvirt_qemu_la_SOURCES = libvirt-qemu.c util/threadpool.c
>
> Why is this change necessary? Shouldn't libvirt_util.la already include
> threadpool.c, and the qemu driver already be linking with libvirt_util.la?
Is this ok?
-libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
+libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS) ../src/libvirt_util.la
Or link will fail:
CCLD libvirtd
libvirtd-libvirtd.o: In function `qemudRunLoop':
/mnt/data/kernel/libvirt/daemon/libvirtd.c:2229: undefined reference to `virWorkerPoolNew'
/mnt/data/kernel/libvirt/daemon/libvirtd.c:2287: undefined reference to `virWorkerPoolFree'
libvirtd-libvirtd.o: In function `qemudDispatchClientRead':
/mnt/data/kernel/libvirt/daemon/libvirtd.c:1778: undefined reference to `virWorkerPoolSendJob'
../src/.libs/libvirt_driver_qemu.a(libvirt_driver_qemu_la-qemu_driver.o): In function `qemuHandleDomainWatchdog':
/mnt/data/kernel/libvirt/src/qemu/qemu_driver.c:1224: undefined reference to `virWorkerPoolSendJob'
../src/.libs/libvirt_driver_qemu.a(libvirt_driver_qemu_la-qemu_driver.o): In function `qemudShutdown':
/mnt/data/kernel/libvirt/src/qemu/qemu_driver.c:2147: undefined reference to `virWorkerPoolFree'
../src/.libs/libvirt_driver_qemu.a(libvirt_driver_qemu_la-qemu_driver.o): In function `qemudStartup':
/mnt/data/kernel/libvirt/src/qemu/qemu_driver.c:2007: undefined reference to `virWorkerPoolNew'
collect2: ld returned 1 exit status
<...snip...>
> > +
> > virDomainObjUnlock(vm);
> >
> > if (watchdogEvent || lifecycleEvent) {
> > @@ -1788,6 +1807,9 @@ qemudStartup(int privileged) {
> > if (virAsprintf(&qemu_driver->snapshotDir,
> > "%s/lib/libvirt/qemu/snapshot", LOCALSTATEDIR) == -1)
> > goto out_of_memory;
> > + if (virAsprintf(&qemu_driver->autoDumpPath,
> > + "%s/lib/libvirt/qemu/dump", LOCALSTATEDIR) == -1)
>
> At first glance, I'm not quite sure why autoDumpPath is configurable but
> not snapshotDir. I guess it has to do with the fact that snapshots are
> under libvirt control (the user does not need to know that they exist),
> but dump files are intended to be consumed by the user (so the user
> should be able to specify an alternate location).
Yes.
>
> > + goto out_of_memory;
> > } else {
> > uid_t uid = geteuid();
> > char *userdir = virGetUserDirectory(uid);
> > @@ -1816,6 +1838,8 @@ qemudStartup(int privileged) {
> > goto out_of_memory;
> > if (virAsprintf(&qemu_driver->snapshotDir, "%s/qemu/snapshot", base) == -1)
> > goto out_of_memory;
> > + if (virAsprintf(&qemu_driver->autoDumpPath, "%s/qemu/dump", base) == -1)
> > + goto out_of_memory;
>
> However, it does raise an issue. Is qemu.conf only for privileged
> users, or do we have to worry about allowing non-privileged users also
> be able to pick up an alternate directory (especially since they can't
> dump to /var/log/...)?
qemu.conf is only for privileged users, but non-privileged users who
need to analyze dump files should ask admin to specify an auto-dump
directory they have right to read.
Or do you have a better idea?
--
Thanks,
Hu Tao
More information about the libvir-list
mailing list