Skip to contentSkip to conversation

Performance issue with igb with lots of different src-ip addrs.

DISCUSSION Ben Greear 2 participants 6 messages Mar 16, 2017 – Mar 24, 2017

Subsystems (2)
lore
Share & tools
lore

Ben Greear

author
#0 lore raw

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range) for the source IP addr in pktgen, then performance of igb is very poor (like 150Mbps throughput instead of 1Gbps). It runs right at line speed if we use same src/dest IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in several different kernels. We specifically tested bridge mode in this stock Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#1 lore raw

Can you include the pktgen script you are running?

Also when you say you are driving traffic through the bridge are you sending from something external on the system or are you actually directing the traffic from pktgen into the bridge directly?

- Alex

Quoted 29 lines · Ben Greear

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range) for the source IP addr in pktgen, then performance of igb is very poor (like 150Mbps
throughput instead of 1Gbps). It runs right at line speed if we use same src/dest
IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in several different kernels. We specifically tested bridge mode in this stock Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC 2017
x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

author
#2 lore raw

I'm actually using a hacked up version of pktgen nicely driven by our GUI tool, but the crux is that you need to set min and max src IP to some large range.

We are driving pktgen from a separate machine. Stock pktgen isn't good at reporting received pkts last I checked, so it may be more difficult to easily view the problem.

I'll be happy to set up my tool on your Fedora 24 or similar VM or machine if you want.

Thanks,
Ben

Quoted 39 lines · Alexander Duyck

Can you include the pktgen script you are running?

Also when you say you are driving traffic through the bridge are you sending from something external on the system or are you actually directing the traffic from pktgen into the bridge directly?

- Alex

Quoted 29 lines · Ben Greear

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range) for the source IP addr in pktgen, then performance of igb is very poor (like 150Mbps
throughput instead of 1Gbps). It runs right at line speed if we use same src/dest
IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in several different kernels. We specifically tested bridge mode in this stock Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC 2017
x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

Signature · 11 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired
#3 lore raw

I'm not really interested in installing a custom version of pktgen. Any chance you can recreate the issue with standard pktgen?

You might try running perf to get a snapshot of what is using CPU time on the system. It will probably give you a pretty good idea where the code is that is eating up all your CPU time.

- Alex

Quoted 67 lines · Ben Greear

I'm actually using a hacked up version of pktgen nicely driven by our GUI tool, but the crux is that you need to set min and max src IP to some large
range.

We are driving pktgen from a separate machine. Stock pktgen isn't good at reporting
received pkts last I checked, so it may be more difficult to easily view the problem.

I'll be happy to set up my tool on your Fedora 24 or similar VM or machine if you
want.

Thanks,
Ben

Quoted 47 lines · Alexander Duyck

Can you include the pktgen script you are running?

Also when you say you are driving traffic through the bridge are you sending from something external on the system or are you actually directing the traffic from pktgen into the bridge directly?

- Alex

Quoted 35 lines · Ben Greear

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range)
for the source IP addr in pktgen, then performance of igb is very poor (like
150Mbps
throughput instead of 1Gbps). It runs right at line speed if we use same src/dest
IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in
several different kernels. We specifically tested bridge mode in this stock
Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC
2017
x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

Quoted 3 lines

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

author
#4 lore raw

I think we can, might take us a day or two to get time to do it.

Thanks,
Ben

Quoted 81 lines · Alexander Duyck

I'm not really interested in installing a custom version of pktgen. Any chance you can recreate the issue with standard pktgen?

You might try running perf to get a snapshot of what is using CPU time on the system. It will probably give you a pretty good idea where the code is that is eating up all your CPU time.

- Alex

Quoted 70 lines · Ben Greear

I'm actually using a hacked up version of pktgen nicely driven by our GUI tool, but the crux is that you need to set min and max src IP to some large
range.

We are driving pktgen from a separate machine. Stock pktgen isn't good at reporting
received pkts last I checked, so it may be more difficult to easily view the problem.

I'll be happy to set up my tool on your Fedora 24 or similar VM or machine if you
want.

Thanks,
Ben

Quoted 47 lines · Alexander Duyck

Can you include the pktgen script you are running?

Also when you say you are driving traffic through the bridge are you sending from something external on the system or are you actually directing the traffic from pktgen into the bridge directly?

- Alex

Quoted 35 lines · Ben Greear

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range)
for the source IP addr in pktgen, then performance of igb is very poor (like
150Mbps
throughput instead of 1Gbps). It runs right at line speed if we use same src/dest
IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in
several different kernels. We specifically tested bridge mode in this stock
Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC
2017
x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

Signature · 11 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired
author
#5 lore raw
Quoted 12 lines · Ben Greear

I think we can, might take us a day or two to get time to do it.

Thanks,
Ben

Quoted 6 lines · Alexander Duyck

I'm not really interested in installing a custom version of pktgen. Any chance you can recreate the issue with standard pktgen?

You might try running perf to get a snapshot of what is using CPU time on the system. It will probably give you a pretty good idea where the code is that is eating up all your CPU time.

So, I had time to dig into this today.

Turns out that our tool was reporting drops because of sequence number gaps, which in turn were caused by out-of-order frames...not actually dropping frames.

If I force the rss_queues to one, the problem goes away.

Sorry for mis-reporting a bug.

Thanks,
Ben

Quoted 76 lines
Quoted 75 lines

- Alex

Quoted 70 lines · Ben Greear

I'm actually using a hacked up version of pktgen nicely driven by our GUI tool, but the crux is that you need to set min and max src IP to some large
range.

We are driving pktgen from a separate machine. Stock pktgen isn't good at reporting
received pkts last I checked, so it may be more difficult to easily view the problem.

I'll be happy to set up my tool on your Fedora 24 or similar VM or machine if you
want.

Thanks,
Ben

Quoted 47 lines · Alexander Duyck

Can you include the pktgen script you are running?

Also when you say you are driving traffic through the bridge are you sending from something external on the system or are you actually directing the traffic from pktgen into the bridge directly?

- Alex

Quoted 35 lines · Ben Greear

Hello,

We notice that when using two igb ports as a bridge, if we use pktgen to drive traffic through the bridge and randomize (or use a very large range)
for the source IP addr in pktgen, then performance of igb is very poor (like
150Mbps
throughput instead of 1Gbps). It runs right at line speed if we use same src/dest
IP addr in pktgen. So, seems it is related to lots of src/dest IP addresses.

We see same problem when using pktgen to send to itself, and we see this in
several different kernels. We specifically tested bridge mode in this stock
Fedora kernel:

Linux lfo350-59cc 4.9.13-101.fc24.x86_64 #1 SMP Tue Mar 7 23:48:32 UTC
2017
x86_64 x86_64 x86_64 GNU/Linux

e1000e does not show this problem in our testing.

Any ideas what the issue might be and how to fix it?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com