kern/118093: [firewire] firewire bus reset hogs CPU, causing
data to be lost
Sean Bruno
sean.bruno at dsl-only.net
Mon Jan 5 19:23:20 UTC 2009
Well ... this has really sent me down the rabbit hole the last couple of
days.
There is a need to audit all locking in the firewire stack right now and
I have started that task.
Essentially, threads, callouts, interrupts and task queues are all
jumping around causing context to be switched from one thread to
another. It's kind of bad in there and I need to sort it out.
I'm working with a stable/7 tree, so I've started a patch for it. This
patch has quite a few printf -> device_printf changes in it, so try to
ignore thost for now.
The meat of the patch is a judicious implementation of FW_GLOCK() in
certain code areas. Note that sometimes the code is just trying to get
the lock and then drops it immediately. This is not very optimal, but
it does the trick.
I'm still seeing a high level of broken log messages
in /var/log/messages but this may help the issue you were seeing. Give
it a spin.
Sean
-------------- next part --------------
A non-text attachment was scrubbed...
Name: firewire.diff
Type: text/x-patch
Size: 9157 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-firewire/attachments/20090105/b632981f/firewire.bin
More information about the freebsd-firewire
mailing list