Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
4864 Discussions

i210 - What is the real line rate performance with small packet size

PView
Beginner
1,890 Views

I have to deal with legacy platforms equipped with i210 controller and what I can get from it is around 800Mbps line rate @ 64B packets RX and TX.

 

I'm using poll mode driver with every optimization I can think of but still, can't break this magic border. One thing that left for me is implementing DCA but before I do that want to ask if there as

test results where you get close to 1G line rate @ 64B packet size?

 

What PCIe/HW/SW configuration is optimal for small packets?

 

If datasheet is wrong and this controllers isn't capable for 1G line rate for small packets, can you give me real values?

 

0 Kudos
12 Replies
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Thank you for posting in Intel Ethernet Communities.

 

We'd like to double check if the poll mode driver you mentioned is referring to the DPDK driver.

 

Looking forward to your reply.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
PView
Beginner
1,515 Views

This is version 19.05 with modified RX path that increase performance additionally by 80Mbit.

I also tested Linux driver - i can't even handle 600 Mbit/s @ 4 core machine... quite disappointing result.

 

But it doesn't matter what driver it is, TX/RX path is just to fill proper rings and memory buffers, so I'm asking:

  • what driver / system I need to use to get declared performance
  • what features to enable or disable to get close to line rate stated in datasheet at small packets (64b would be best)
  • what firmware to use (where to find it?)

 

BTW: it's no point redirecting me to DPDK community mailing list, as they are not publishing any performance results for this NIC. I could not find performance results for Linux driver either so this why I'm asking here.

 

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Thank you for the reply and the additional information.

 

Please allow us to check on your query. We will provide an update within 2-3 business days.

 

Hoping for your patience.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Thank you for the patience on this matter.

 

Kindly provide the following details for us to further investigate on your request.

1.) Brand and model of the motherboard

2.) Have you tried getting in touch with your motherboard manufacturer regarding the issue?

3.) Kindly list the steps on how you did the testing

 

We'd also like to share that we did a quick test in Windows platform with a I210-T1 server adapter and iperf with 64B TCP window size, driver version 12.18.9.1 (default settings), and the result is above 900Mbps.

 

Looking forward to your response.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
PView
Beginner
1,515 Views

Please forgive me for not being precise enough. Let's clarify this now:

 

  1. I'm using Linux kernel 4.14
  2. My use case is mostly UDP with small payloads.
  3. TSO/GSO can't be used - each packet is constructed and queued (in bursts).
  4. I don't have any preference about the driver: it might be kernel driver or DPDK. From my experience DPDK is a lot faster so I'm using it now.

 

I'm afraid that these platforms are industrial machines. Brand and model info are just O.E.M. If this is important to get proper support I can try to find some more details but it might take some time.

Anyway, I doubt that mother board might be source of the trouble as there is also 10G NIC there and reaching line rate isn't a problem there with any kind of packet size.

 

During development I did a lot of testing and observed some odd behavior of i210 NICs: when RX ring is not polled (packets are just dropped as new buffers are not provided) transmit rate slows down from 800Mbit/s to about 640Mbit/s. I just can't explain this.

 

Thank you for the testing results. 900Mbps is good result but I'm afraid that I can't confirm this using my platform. Also I think that Windows is using TSO offload by default so this might stress PCI bus a lot less.

From my testing:

 

TCP with defaults window size:

# iperf -c 192.2.0.4 ------------------------------------------------------------ Client connecting to 192.2.0.4, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.2.0.2 port 33100 connected with 192.2.0.4 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 943 Mbits/sec

TCP with 64b window size server and client (please note that effective window size is 4.5k):

iperf -c 192.2.0.4 -w 64 WARNING: TCP window size set to 64 bytes. A small window size will give poor performance. See the Iperf documentation. ------------------------------------------------------------ Client connecting to 192.2.0.4, TCP port 5001 TCP window size: 4.50 KByte (WARNING: requested 64.0 Byte) ------------------------------------------------------------ [ 3] local 192.2.0.2 port 33142 connected with 192.2.0.4 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.1 sec 41.6 MBytes 34.7 Mbits/sec

TCP with 64b window size server and client x 10 parallel jobs:

iperf -c 192.2.0.4 -w 64 -P 10 WARNING: TCP window size set to 64 bytes. A small window size will give poor performance. See the Iperf documentation. ------------------------------------------------------------ Client connecting to 192.2.0.4, TCP port 5001 TCP window size: 4.50 KByte (WARNING: requested 64.0 Byte) ------------------------------------------------------------ [ 12] local 192.2.0.2 port 33750 connected with 192.2.0.4 port 5001 [ 3] local 192.2.0.2 port 33732 connected with 192.2.0.4 port 5001 [ 4] local 192.2.0.2 port 33734 connected with 192.2.0.4 port 5001 [ 5] local 192.2.0.2 port 33736 connected with 192.2.0.4 port 5001 [ 6] local 192.2.0.2 port 33738 connected with 192.2.0.4 port 5001 [ 7] local 192.2.0.2 port 33740 connected with 192.2.0.4 port 5001 [ 8] local 192.2.0.2 port 33742 connected with 192.2.0.4 port 5001 [ 9] local 192.2.0.2 port 33744 connected with 192.2.0.4 port 5001 [ 10] local 192.2.0.2 port 33746 connected with 192.2.0.4 port 5001 [ 11] local 192.2.0.2 port 33748 connected with 192.2.0.4 port 5001 [ ID] Interval Transfer Bandwidth [ 8] 0.0-10.0 sec 34.4 MBytes 28.7 Mbits/sec [ 6] 0.0-10.1 sec 34.5 MBytes 28.8 Mbits/sec [ 7] 0.0-10.0 sec 34.9 MBytes 29.1 Mbits/sec [ 10] 0.0-10.0 sec 37.4 MBytes 31.2 Mbits/sec [ 12] 0.0-10.1 sec 23.0 MBytes 19.2 Mbits/sec [ 3] 0.0-10.1 sec 37.4 MBytes 31.1 Mbits/sec [ 11] 0.0-10.1 sec 23.4 MBytes 19.5 Mbits/sec [ 5] 0.0-10.1 sec 23.4 MBytes 19.4 Mbits/sec [ 4] 0.0-10.1 sec 23.4 MBytes 19.4 Mbits/sec [ 9] 0.0-10.1 sec 23.2 MBytes 19.3 Mbits/sec [SUM] 0.0-10.1 sec 295 MBytes 245 Mbits/sec

 

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Not a problem at all.

 

We highly appreciated your reply. Please let us further check this on our end and we will give you an update within 1-3 business days.

 

Hoping for your patience.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

We'd like to double check the Linux distribution used in your setup.

 

Looking forward to your response

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
PView
Beginner
1,515 Views

For now It is Ubuntu 16.04.

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Thank you for the prompt reply.

 

We will continue to check on this and get back to you within 1-3 business days.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

Apologies for the delay on this matter.

 

Please download the System Support Utility from the link below, and attach a log file for us to investigate the issue. Kindly refer to the steps below.

a-https://downloadcenter.intel.com/download/26735/Intel-System-Support-Utility-for-the-Linux-Operating-System?product=91600

b- Open SSU.exe

c- Mark the box "Everything" and then click "Scan".

d- When finished scanning, click "Next".

e- Click on "Save" and attach the file to a post.

 

Please also share the brand and model of the motherboard

 

Looking forward to your reply.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

We'd like to follow up the details that we requested on our previous post for us to continue checking on this request.

 

Awaiting to your reply.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Caguicla_Intel
Moderator
1,515 Views

Hello PView,

 

How are you today?

 

Please be informed that we will now close this request since we haven't receive any response from our previous follow up. Should you have any other concerns or assistance needed in the future, please do not hesitate to post a new question.

 

Best regards,

Crisselle C

Intel Customer Support

A Contingent Worker at Intel

0 Kudos
Reply