All of lore.kernel.org
 help / color / mirror / Atom feed
* calling vif hotplug scripts more than once
@ 2014-07-08 15:13 Olaf Hering
  2014-07-08 16:49 ` Ian Jackson
  0 siblings, 1 reply; 9+ messages in thread
From: Olaf Hering @ 2014-07-08 15:13 UTC (permalink / raw)
  To: Roger Pau Monné, Ian Jackson, Ian Campbell; +Cc: xen-devel


There is a regression in libxl in its handling of hotplug scripts. Its
not clear to me how to solve it.

If in a Windows VM the network interface is disabled and reenabled in
the "Network and Sharing Center", the backend remains in state 2 and the
vif is not reconnected to the bridge.  With xend all that was done via
udev. If run_hotplug_scripts in /etc/xen/xl.conf is set to 0 it works as
well.

Looking through libxl it appears that libxl__device_nic_add ->
libxl__wait_device_connection -> device_backend_callback ->
device_hotplug does all the work. Unfortunately, device_backend_callback
unregisters the watch, so no further events will be received. It seems
device_backend_callback should call device_hotplug, and then register
yet another watch to wait for state changes so that it eventually
catches such a disable/enable event from the guest.

Since all that is generic code, it seems this use case was not
considered. It looks like a one-shot approach to me.

I'm not sure how to fix this. Should device_backend_callback call into
libxl__wait_device_connection again to wait (forever) for the next 'state==2'?


Olaf

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-07-09  9:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-08 15:13 calling vif hotplug scripts more than once Olaf Hering
2014-07-08 16:49 ` Ian Jackson
2014-07-08 16:52   ` Olaf Hering
2014-07-08 17:11     ` Ian Jackson
2014-07-09  7:36       ` Olaf Hering
2014-07-09  8:57         ` Ian Campbell
2014-07-09  8:59         ` Paul Durrant
2014-07-09  9:08           ` Ian Campbell
2014-07-09  9:25           ` Olaf Hering

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.