Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Dec 2008 17:10:53 -0800
From:      Sean Bruno <sbruno@miralink.com>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-firewire@freebsd.org, bug-followup@freebsd.org
Subject:   Re: kern/118093: firewire bus reset hogs CPU, causing data to be lost
Message-ID:  <4949A31D.5030507@miralink.com>
In-Reply-To: <20081216.235941.1266245051.imp@bsdimp.com>
References:  <4947EAB0.3020704@miralink.com>	<200812170329.DAA17848@sopwith.solgatos.com> <20081216.235941.1266245051.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
M. Warner Losh wrote:
> In message: <200812170329.DAA17848@sopwith.solgatos.com>
>             Dieter <freebsd@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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-drivers
> To unsubscribe, send any mail to "freebsd-drivers-unsubscribe@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4949A31D.5030507>