[etherlab-dev] irregular packet trasmission on e1000
Olav.Zarges at imc-berlin.de
Wed Jul 16 17:40:32 CEST 2008
I'm send Ethercat packets every 200 us using xenomai. The time
between two packets ranges from 180 us to 220 us which is OK.
But every 2 seconds the time is 290 us (therefore the next packet is
sent after 110 us).
I found the extra 90 us are caused by 'e1000_watchdog' called in
ec_poll(). As far as I can see e1000_watchdog should be called to
detect link status change which is unlikely to happen if packets are
I fixed it by resetting the watchdog when a packet is received.
Anybody else having this problem?
--- devices/e1000/e1000_main-2.6.20-ethercat.c (revision 154)
+++ devices/e1000/e1000_main-2.6.20-ethercat.c (working copy)
@@ -4366,6 +4366,8 @@
/* probably a little skewed due to removing CRC */
total_rx_bytes += length;
+ adapter->ec_watchdog_jiffies = jiffies;
/* code added for copybreak, this should improve
* performance for small packets with large amounts
More information about the etherlab-dev