+#ifdef CONFIG_E1000_NAPI
+#define E1000_TX_WEIGHT 64
+ /* weight of a sort for tx, to avoid endless transmit cleanup */
+               if (count++ == E1000_TX_WEIGHT) break;
+#endif

If you hit the 'break' statement, are you guaranteed a TX interrupt or some other event that ensures this code will be called again? If yes, what?

Otherwise patches 12-19 look OK.

no, you aren't guaranteed an interrupt, but due to the
       if ((!tx_cleaned && (work_done == 0) ...

in e1000_clean, you'll keep going back through the transmit cleanup (and keep scheduling e1000_clean) until they're all done.

This change helped in the case where we're doing mostly transmits, and also in the multi-port line rate bi-directional test.

Jesse


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to