Subject: Re: [PATCH] [e1000]: Remove unnecessary tx_lock

From: jamal <[email-masked]>
Date: Mon, 07 Aug 2006 11:40:49 -0400

On Mon, 2006-07-08 at 17:21 +0200, Edgar E. Iglesias wrote:
[..]
> I have a question regarding your patch. In clean_tx_irq, it seems you dont
> clean the ring unless fdesc < tx_ring->prunet. Won't this cause deadlocks for
> local TCP connections if transmit goes quiet?
> 

I have not tested the TCP case; however, note that the specific part you
reference is commented out. There are no deadlock issues in the case of
forwarding (as in my testcases). 

I did not quiet follow the ensuing discussion after your post:
These descriptors being pruned in the tx path happen only after the
packets have been sent out on the wire. Why would this contribute to a
deadlock but not when it happens on the receive path? It is true that
tcp retransmit queue will still be referencing the skbs, but why is it
any different because in one case it happens in the tx and in the other
on the receive? Is there dependency on waking up the queue?

> It seems to me as if this patch depends on the skb orphaning previously 
> suggested on this thread. Please correct me if I'm wrong.
> 

I didnt quiet follow that discussion I will go back and read it; you
could also answer my questions above to make me understand better.

cheers,
jamal