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