[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Fix device removal on net and block frontend drivers




xen-devel-bounces@xxxxxxxxxxxxxxxxxxx wrote on 11/21/2005 01:31:48 PM:

> On Mon, Nov 21, 2005 at 11:49:19AM -0500, Stefan Berger wrote:
>
> > Murillo Fernandes Bernardes <mfb@xxxxxxxxxx> wrote on 11/21/2005 11:33:31
> > AM:
> >
> > > On Monday 21 November 2005 14:07, Stefan Berger wrote:
> > > > xen-devel-bounces@xxxxxxxxxxxxxxxxxxx wrote on 11/21/2005 10:43:01 AM:
> > > > > Frontend devices are not being unregistered when in closed state.
> > The
> > > > > following patch fix that.
> > > > >
> > > > > Fix bug #420.
> > > > >
> > > > > Makes "05_attach_and_dettach_device_repeatedly_pos" and
> > > > > "09_attach_and_dettach_device_check_data_pos" tests pass.
> > > >
> > > > Did you test this with suspending / resuming a dom U? The reason I am
> > > > asking is that when suspending the driver immediately gets into state
> > > > 'Closed' and when resuming into state 'Connected',  but now your
> > device is
> > > > unregistered.
> > >
> > > No, I did not test suspend/resume.
> > >
> > > I really don't see why it should get into Closed on suspend, but anyway,
> > is
> > > this really hapenning? I could not find any switch to Closed into
> > suspend's
> > > code, neither on resume.
>
> xenbus_read_driver_state returns Closed if the backend path is no longer
> present.  Maybe this is where the Closed has come from.  However,
> xenbus_probe.c:otherend_changed is supposed to be protecting us from watches
> that have fired immediately after a resume.
>
> Could you please enable the DPRINTK in xenbus_probe and see whether the Closed
> is coming through the test in otherend_changed?  This would help diagnose the
> problem.


Here's the log from domain 0's /var/log/messages:

Nov 21 14:54:43 jlfb-2 gpm[2667]: *** info [startup.c(95)]:
Nov 21 14:54:43 jlfb-2 gpm[2667]: Started gpm successfully. Entered daemon mode.
Nov 21 14:54:43 jlfb-2 gpm[2667]: *** info [mice.c(1766)]:
Nov 21 14:54:43 jlfb-2 gpm[2667]: imps2: Auto-detected intellimouse PS/2
Nov 21 14:54:52 jlfb-2 fstab-sync[2817]: removed all generated mount points
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend:639) .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend_unit:624) backend/vif/15/0
Nov 21 14:54:55 jlfb-2 kernel: .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend:639) .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend_unit:624) backend/vtpm/15/6
Nov 21 14:54:55 jlfb-2 kernel: .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend:639) .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (xenbus_probe_backend_unit:624) backend/vtpm/2/6
Nov 21 14:54:55 jlfb-2 kernel: .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (frontend_changed:763) .
Nov 21 14:54:55 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:54:55 jlfb-2 gconfd (root-2848): starting (version 2.10.0), pid 2848 user 'root'
Nov 21 14:54:55 jlfb-2 gconfd (root-2848): Resolved address "xml:readonly:/etc/gconf/gconf.xml.mandatory" to a read-only configuration source at position 0
Nov 21 14:54:55 jlfb-2 gconfd (root-2848): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 1
Nov 21 14:54:56 jlfb-2 gconfd (root-2848): Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults" to a read-only configuration source at position 2
Nov 21 14:55:03 jlfb-2 gconfd (root-2848): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 0

below: starting user domain

Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (xenbus_dev_probe:338) .
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:55:40 jlfb-2 last message repeated 5 times
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (otherend_changed:307) state is 1, /local/domain/1/device/vif/0/state, /local/domain/1/device/vif/0/state.
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:55:40 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:55:41 jlfb-2 kernel: device vif1.0 entered promiscuous mode
Nov 21 14:55:41 jlfb-2 kernel: xenbr0: port 1(vif1.0) entering learning state
Nov 21 14:55:41 jlfb-2 kernel: xenbr0: topology change detected, propagating
Nov 21 14:55:41 jlfb-2 kernel: xenbr0: port 1(vif1.0) entering forwarding state
Nov 21 14:55:41 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:55:45 jlfb-2 kernel: xenbus;_probe (otherend_changed:307) state is 4, /local/domain/1/device/vif/0/state, /local/domain/1/device/vif/0/state.
Nov 21 14:55:45 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .

below: suspending user domain

Nov 21 14:56:09 jlfb-2 kernel: xenbus;_probe (otherend_changed:307) state is 6, /local/domain/1/device/vif/0/state, /local/domain/1/device/vif/0/state.
Nov 21 14:56:09 jlfb-2 kernel: xenbus;_probe (xenbus_dev_remove:376) .
Nov 21 14:56:09 jlfb-2 kernel: xenbr0: port 1(vif1.0) entering disabled state
Nov 21 14:56:09 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:56:09 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:56:09 jlfb-2 kernel: device vif1.0 left promiscuous mode
Nov 21 14:56:09 jlfb-2 kernel: xenbr0: port 1(vif1.0) entering disabled state
Nov 21 14:56:09 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .

below: resuming user domain

Nov 21 14:56:30 jlfb-2 last message repeated 2 times
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (xenbus_dev_probe:338) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:56:30 jlfb-2 last message repeated 5 times
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (otherend_changed:307) state is 1, /local/domain/2/device/vif/0/state, /local/domain/2/device/vif/0/state.
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (otherend_changed:307) state is 6, /local/domain/2/device/vif/0/state, /local/domain/2/device/vif/0/state.
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (xenbus_dev_remove:376) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (xenbus_hotplug_backend:232) .
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .
Nov 21 14:56:30 jlfb-2 kernel: device vif2.0 entered promiscuous mode
Nov 21 14:56:30 jlfb-2 kernel: xenbr0: port 1(vif2.0) entering learning state
Nov 21 14:56:30 jlfb-2 kernel: xenbr0: topology change detected, propagating
Nov 21 14:56:30 jlfb-2 kernel: xenbr0: port 1(vif2.0) entering forwarding state
Nov 21 14:56:30 jlfb-2 kernel: xenbus;_probe (backend_changed:771) .

Result: eth0 is gone.

This is a user domain that is booting into a RAM disk. Memory of the user domain is 64M.


   Stefan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.