[libvirt] Using virtEvents

D. Herrendoerfer 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 ?

Best regards,

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
> https://www.redhat.com/mailman/listinfo/libvir-list

More information about the libvir-list mailing list