On Tue, Aug 05, 2003 at 08:19:25AM -0700, Feldman, Scott wrote:
> > I've also noticed that the number of hard_start_xmit failures
> > in e1000 has increased significantly in version 5.1.13-k1. In
> > version 5.0.43-k1 the number of failures was much smaller.
>
> Interesting. Felix, would you undo the change[1] below in 5.1.13-k1 and
> see what happens? With the change below, 5.1.13 would be more
> aggressive on Tx cleanup, so we'll be quicker waking the queue than
> before.
>
> -scott
>
> for(i = 0; i < E1000_MAX_INTR; i++)
> - if(!e1000_clean_rx_irq(adapter) &&
> + if(!e1000_clean_rx_irq(adapter) &
> !e1000_clean_tx_irq(adapter))
> break;
>
> [1] Something still bothers me about this new form where we're mixing a
> bit-wise operator with logical operands. Should this bother me?
It doesn't matter to the compiler if you make it explicit:
unsigned int rx_work = e1000_clean_rx_irq();
unsigned int tx_work = e1000_clean_tx_irq();
if (!rx_work && !tx_work)
break;
|