Jim Fehlig writes ("Re: [Xen-devel] [PATCH 00/12] libxl: fork: SIGCHLD
flexibility"):
Looking at the libvirt code again, it seems a single thread services
the
event loop. See virNetServerRun() in src/util/virnetserver.c. Indeed, I
see the same thread ID in all the timer and fd callbacks. One of the
libvirt core devs can correct me if I'm wrong.
OK. So just to recap where we stand:
* I think libxl needs the SIGCHLD flexibility series. I'll repost
that (v3) but it's had hardly any changes.
* You need to fix the timer deregistration arrangements in the
libvirt/libxl driver to avoid the crash you identified the other day.
* Something needs to be done about the 20ms slop in the libvirt event
loop (as it could cause libxl to lock up). If you can't get rid of
it in the libvirt core, then adding 20ms to the every requested
callback time in the libvirt/libxl driver would work for now.
* I think we can get away with not doing anything about the fd
deregistration race in libvirt because both Linux and FreeBSD have
behaviours that are tolerable.
* libxl should have the fd deregistration race fixed in Xen 4.5.
Have you managed to fix the timer deregistration crash, and retest ?
Thanks,
Ian.