Dropped fragments with MTU=9000 with Intel 82574 Gigabit Ethernet Controller

Solution Verified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content