2009/8/18 Andrew Thompson <andy_at_fud.org.nz>: > Hi Attilio, > > > At the moment usb controller modules can not be unloaded due to a > newbus locking problem, roughly... > > # kldunload ehci > syscall() > driver_module_handler() > --> newbus xlock (subr_bus.c:4127) > usb_detach() > usb_proc_mwait() <- wakeup, detach and drain the usb thread > > > [usb thread, detaching...] > usb_bus_detach() > --> newbus xlock (livelock, the kldunload process has this) > > Hans has made some changes WRT this, perforce changes 167093 and > possibly 167087. Do you want to review this or maybe go for a similar > fix? The other and me are alredy aware of such a problem. Actually, the right fix is to have attach/detach virtual functions to be called completely locklessly (in particular the detach() path). This also means a lot of work atm. This is why the newbus locking change will be backed out for 8.0-REL (just backported to 8.1 proabilly though). Attilio -- Peace can only be achieved by understanding - A. EinsteinReceived on Tue Aug 18 2009 - 11:14:32 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:54 UTC