Embedded Connectivity
Intel network controllers, Firmware, and drivers support systems

I218-LM - Delayed frames

ipe_age
Beginner
2,565 Views

Hi,

We noticed some behaviour we cannot explain when using the Intel I218-LM ethernet interface under Linux (Debian Buster, Kernel 5.2.17) with the in-tree e1000e driver, running on an Intel Core i3-4010U CPU. 

We have a situation with very high CPU load on all cores (multiple processes using full CPU) while also writing large amounts of data to disk. The ethernet interface receives data at a constant rate of about 1000 frames or 400 kB per second. 

In this situation from time to time no ethernet frames are processed for up to 500 ms, equivalent to about 200 kB. However, no data is lost, and all missing frames are processed after the pause. 

According to the data sheet there doesn’t seem to be enough memory on the ethernet controller to store the whole 200 kB. Therefore, we suppose that the frames are not buffered on the interface during the pause but are still transferred to host memory. 

We created a custom kernel with debug output in the ethernet driver in drivers/net/ethernet/intel/e1000e/netdev.c to further analyse this problem. 

The “e1000_clean_rx_irq” function is still called regularly (< 50 ms), which seems to imply that the problem isn’t related to interrupt handling. However, the “while (staterr & E1000_RXD_STAT_DD) loop is not entered for up to 500 ms. 

This left us wondering why the ethernet controller might transfer the data into RAM but not set the DD flag. As the problem seems to occur only while writing large amounts of data to disk, we assume it might be caused by lots of DMA access. But why is the DD flag not set if the data is already in RAM? 

Thank you for your help,
Armin

0 Kudos
24 Replies
ipe_age
Beginner
359 Views

Hi,

is the driver version related to the Ethernet interface firmware? I could not find any information on the linked page if the 0.6-4 FW is the newest available one or not.

Thanks for your help,
Armin

0 Kudos
CarlosAM_INTEL
Moderator
349 Views

Hello, @ipe_age:

Thanks for your reply.

We found the SSU logfile in your communication of August, 27th, 2020; where there is no i218 driver version information. Based on this situation, could you let us know the procedure that you have followed to obtain the driver that you are using?

Also, could you please confirm that you are following the " about Intel(R) drivers" suggestion? You can find it on the following website:

https://downloadcenter.intel.com/download/22283/Intel-Ethernet-Adapter-Complete-Driver-Pack

We are waiting for your answer.

Best regards,

@CarlosAM_INTEL.

0 Kudos
ipe_age
Beginner
328 Views

Hi,

according to our manufacturer, they do not have a special Ethernet driver for their device. Therefore we used the standard driver available from Intel at https://downloadcenter.intel.com/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-?product=71307

The SSU file attached in our previous post however was created before we installed this driver. It used the in-tree driver of linux instead. I have attached a new SSU file with the installed driver in use.

Thanks for your help,
Armin

0 Kudos
CarlosAM_INTEL
Moderator
323 Views

Hello, @ipe_age:

Thanks for your reply.

 

Based on the last part of our previous communication, you need to contact the manufacturer of your OEM branded server or appliance to find the proper software driver, specifically the version that is compatible with your exact firmware version. You should know that use software and firmware versions that have not been validated to work together will affect performance, feature availability, and system stability. You may confirm this information and more details on the last website provided in the cited communication.

Best regards,

@CarlosAM_INTEL.

0 Kudos
Reply