tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: config_alldevs_lock is evil
On Mon, Jan 11, 2010 at 10:57:44PM +0100, Matthias Drochner wrote:
> I'm not sure it is necessary to do device addition/removal at
> that high priority at all -- either it is done by normal threads
> which can wait, or the bus already needs to deal with unexpected
> removals in some way (like USB), and uses a helper thread.
My plan for a week or two has been to reduce the priority to IPL_VM.
config_detach(9) always happens in a thread context, however,
config_deactivate(9) calls (which also access alldevs) happen in
interrupt context at IPL_VM.
In my initial survey of config_deactivate(9) calls, it looked as if some
occurred at IPL_HIGH, but a subsequent survey turned up no such calls.
> Anyway, holding the global alldevs lock to look up a driver
> specific instance is wrong.
How would you suggest to synchronize access to the device_t array in a
cfdriver_t? I could use a mutex per cfdriver_t, just for example, but
maybe you have in mind a better way.
Dave
--
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933
Home |
Main Index |
Thread Index |
Old Index