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

M. Warner Losh imp at bsdimp.com
Tue Dec 16 23:10:04 PST 2008


The following reply was made to PR kern/118093; it has been noted by GNATS.

From: "M. Warner Losh" <imp at bsdimp.com>
To: freebsd at sopwith.solgatos.com
Cc: freebsd-firewire at freebsd.org, freebsd-drivers at freebsd.org,
        bug-followup at freebsd.org
Subject: Re: kern/118093: firewire bus reset hogs CPU, causing data to be
 lost 
Date: Tue, 16 Dec 2008 23:59:41 -0700 (MST)

 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


More information about the freebsd-bugs mailing list