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

Sean Bruno sbruno at miralink.com
Mon Dec 22 19:21:51 PST 2008


Dieter wrote:
> In message <494DAEB1.1070909 at miralink.com>, Sean Bruno writes:
>
>   
>> I setup my system to execute a bus reset every 1 second, simultaneously, 
>> I started copying a large
>> file onto the system see if anything would happen.
>>
>> I saw no change to copy speed reported by SCP during the entire 
>> transaction.  I also see no change
>> to the system load while this is occurring.
>>     
>
> Does your system have a RS-232 console or VGA console?
> The problem might be specific to RS-232.
>
>   
I have both.  I disabled my serial console to test, no change when using
the VGA console only.

>> This seems indicative of "something else" going on.
>>     
>
> Any idea what this "something else" might be?
>
> Does anyone have a clue why my spl calls are returning 0 ?
>
>   
I confirmed that spl's are complete no-ops since rel 5.  So, you want to 
ignore
them as they are just markers now where locking should be implemented.

I went back in your original submission and I can see a significant drop 
in I/O
when resetting the F/W bus.   If I have the following running:
dd if=/dev/zero of=/dev/ad6 bs=64k

Then I see about 64MB/S normally.  When I reset any firewire bus, I see 
the throughput
drop as reported by iostat by a significant amount(2-4 MB/s).

I am assuming that the firewire driver is holding a very heavy lock here 
that is cascading
down to the printf().  At least, that would be my ASSumption.  :)

I will continue to poke around.  You are not crazy Dieter.

Sean




More information about the freebsd-firewire mailing list