Subject: Re: NIU - Sun Neptune 10g - Transmit timed out reset (2.6.24)

From: Matheos Worku <[email-masked]>
Date: Thu, 29 May 2008 17:14:29 -0700

David Miller wrote:

>From: Matheos Worku <[email-masked]>
>Date: Tue, 27 May 2008 18:18:57 -0700
>
>  
>
>>Considering that fixing the HW would take considerable time, I was 
>>wondering if the scheme we use in the nxge driver could be considered as 
>>a workaround. Since the niu driver is already doing skb_orphan as a work 
>>around, what if  already transmitted TX buffers are  reclaimed 
>>periodically, within dev->hard_start_xmit() ?  Then TX_DESC_MARK would 
>>be set if/when available TX descriptor count falls below some watermark. 
>>Disable device TX queue about the time  TX_DESC_MARK is set and enable 
>>it within TX interrupt.
>>    
>>
>
>Since my hack patch didn't fix his problem at all, are you suggesting
>that we end up not fielding TX mark interrupts even though mark is set
>in all the TX descriptors and this is what hangs the chip?
>
>I find that very unlikely, especially because with my test patch every
>single TX descriptor will have the mark bit set and therefore we'd
>have to not receive all of those TX mark interrupts in order for the
>TX unit to hang like that.
>
>Something else must be going wrong.
>  
>
Dave,
Actually what I am suggesting was a workaround for the lack of "TX Ring 
Empty" interrupt by not relying on the TX interrupt at all.  As for the 
TX hang, I will try to reproduce the problem and look at the registers 
for the clue.

Regards
Matheos