[libvirt] Using virtEvents
d.herrendoerfer at herrendoerfer.name
Thu Dec 29 11:03:06 UTC 2011
Sorry to come back on this.
How are the different threads of the libvirt daemon separated ?
I understand that there are 2 separate threads running that are
forked. There are also 4 more that appear to be threads.
Is that correct ?
Now, the virEvents main polling loop is running in a forked thread,
it has no access to worker threads that where created through
virsh for example
Is that correct ?
Last, if a VM needs something to watch over the state of its
network devices, a separate thread needs to be created to do
that because the VMs libvirt daemon thread can't make use
of the virEvent functions without creating a new poll-loop thread ?
D.Herrendoerfer <herrend at de dot ibm dot com > <d.herrendoerfer at
herrendoerfer dot name>
On Dec 22, 2011, at 6:04 PM, Dirk Herrendoerfer wrote:
> Hi all,
> I'm trying to get libvirt to re-associate lost connections when a
> vepa connection
> is lost due to a switch error, or lldpad restart.
> My take was to use the virtEvent infrastructure to poll for messages
> on a netlink
> socket and then restart the association if the message indicates
> that a link came
> back up.
> I ran into a problem, that if I start the polling netlink event from
> the daemon thread
> I would get the file events an the netlink messages, but I cannot
> configure the
> event handler because the rpc client threads and the daemon do not
> share the
> same address space.
> Is there a way to get file events in the VMs setup code so I can
> register a callback
> at VM initialization time to receive netlink messages and restart
> association if needed ?
> Best regards,
> D.Herrendoerfer <herrend at de dot ibm dot com > <d.herrendoerfer at
> herrendoerfer dot name>
> libvir-list mailing list
> libvir-list at redhat.com
More information about the libvir-list