Dropped fragments with MTU=9000 with Intel 82574 Gigabit Ethernet Controller
Issue
The problem occurs when a large (>33KB) packets are sent (MTU=9000) through a Kontron CP6930 switch to a Kontron CP6002 board running RHEL6/RHEL7. At the receiving end, packets are regularly lost due to missing fragments. This problem only occurs with the CP6930 switch. The problem does not occur if the switch is bypassed with a cable or another type of switch (eg. Netgear desktop). The problem only occurs with MTU > 1500.
The problem does not occur for RHEL5 but our application SW does not perform correctly with this OS.
The "ethtool -S" function indicated that the "rx_missed_errors" count matches the number of lost packets.
The CP6002 board uses an Intel 82574 Gigabit Ethernet Controller connected via PCIe. The driver source code and 82574 documentation indicates that rx_missed_errors occur when the 82574 internal FIFO (~40KB size) cannot send the data to memory (via PCIe) fast enough to keep up with the input.
All attempts to adjust RHEL network/driver and switch parameters, driver versions and BIOS versions did not fix the problem.
The problem goes away for RHEL6 when ACPI is disabled (boot option acpi=off), unfortunately this has a negative impact on timers/interrupts such that our application software does not function correctly.
The problem also goes away for RHEL7 when ACPI is disabled, and there is no problem with timers/interrupts, our application software runs well.
We need the system to work with RHEL6.2
Environment
- Red Hat Enterprise Linux (RHEL) 6.2.
- Intel e1000e NIC driver.
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.