kern/118093: firewire bus reset hogs CPU, causing data to be lost

Sean Bruno sbruno at miralink.com
Wed Dec 17 17:10:57 PST 2008


M. Warner Losh wrote:
> In message: <200812170329.DAA17848 at sopwith.solgatos.com>
>             Dieter <freebsd at sopwith.solgatos.com> writes:
> : Sean>  Which file in dev/firewire are you looking at?
> : 
> : fwohci.c  and  firewire.c
> : 
> : examples:
> : 
> : printf("non CYCLEMASTER mode\n");
> : 
> : device_printf(fc->dev, "Initiate bus reset\n");
> : 
> : -------------------
> : 
> : Warner>  This can't be the case.  There's no SPL involved at all.  Maybe
> : Warner>  removing the printfs causes an interrupt to be serviced faster,
> : Warner>  resulting in what appears to be better performance...
> : 
> : With the printfs, Ethernet is not getting serviced.  This
> : is repeatable and easily reproduced.   Without the printfs,
> : it seems ok.
> : 
> : If it isn't spl, what is locking out Ethernet?
>
> interrupt storm?  In old-spl-locked drivers, often times the interrupt
> would be masked while certain operations happened.  In new
> mutex-locked freebsd, there's no way to block the interrupts, so
> sometimes old code gets into an interrupt storm, which starves other
> things.  Not sure why printf would trigger this, however...
>
> Warner
> _______________________________________________
> freebsd-drivers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-drivers
> To unsubscribe, send any mail to "freebsd-drivers-unsubscribe at freebsd.org"
>   
Let me take a stab at this one this week.  There's got to be something 
more going on
than a printf() causing hell.  It could be a mutex being held causing 
nightmares.

The firewire code is my current project, I'll look at this issue now.

Sean


More information about the freebsd-firewire mailing list