results with diff affinity settings using ixgbe

2 messages, 2 authors, 2009-01-27 · open the first message on its own page

results with diff affinity settings using ixgbe

From: Paweł Staszewski <hidden>
Date: 2009-01-27 15:14:25

I make some tests with affinity on my machine with some traffic load.
If someone want look:



Traffic in all test was 350Mbit/s TX and the same on RX

RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft  
%steal   %idle    intr/s
Average:     all    0.05    0.00    0.00    0.00    1.89   10.03    
0.00   88.03 221511.70
Average:       0    0.40    0.00    0.00    0.00    0.00    0.00    
0.00   99.60      0.70
Average:       1    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      0.80
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      0.70
Average:       3    0.00    0.00    0.10    0.00    0.00    0.40    
0.00   99.50      0.70
Average:       4    0.00    0.00    0.00    0.00    2.06   18.74    
0.00   79.20  12870.50
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      1.30
Average:       6    0.00    0.00    0.00    0.00    2.65   57.49    
0.00   39.86  59410.60
Average:       7    0.00    0.00    0.00    0.00   10.50    5.00    
0.00   84.50  53977.90


RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu1
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft  
%steal   %idle    intr/s
Average:     all    0.08    0.00    0.09    0.00    0.75   14.24    
0.00   84.84 215755.20
Average:       0    0.50    0.00    0.00    0.00    0.00    0.00    
0.00   99.50      1.30
Average:       1    0.00    0.00    0.53    0.00    2.34   36.91    
0.00   60.21   9771.90
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      1.40
Average:       3    0.00    0.00    0.00    0.00    0.00    0.20    
0.00   99.80      1.30
Average:       4    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      1.30
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      1.80
Average:       6    0.00    0.00    0.20    0.00    2.65   78.51    
0.00   18.64  54691.70
Average:       7    0.00    0.00    0.00    0.00    1.03    0.51    
0.00   98.46  54060.60


All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu1
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft  
%steal   %idle    intr/s
Average:     all    0.07    0.00    0.10    0.00    1.19    9.44    
0.00   89.19 210155.50
Average:       0    0.60    0.00    0.00    0.00    0.00    0.00    
0.00   99.40      0.60
Average:       1    0.00    0.00    0.41    0.00    2.87   16.27    
0.00   80.45  13045.30
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      0.70
Average:       3    0.10    0.00    0.30    0.00    0.00    0.20    
0.00   99.40      0.60
Average:       4    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      0.70
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      1.10
Average:       6    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      0.60
Average:       7    0.00    0.00    0.10    0.00    6.77   60.00    
0.00   33.13 107242.50


All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft  
%steal   %idle    intr/s
Average:     all    0.05    0.00    0.04    0.00    1.24    9.55    
0.00   89.12 212186.90
Average:       0    0.40    0.00    0.00    0.00    0.00    0.00    
0.00   99.60      2.20
Average:       1    0.10    0.00    0.00    0.00    0.00    0.00    
0.00   99.90      2.30
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      2.20
Average:       3    0.00    0.00    0.00    0.00    0.00    0.30    
0.00   99.70      2.20
Average:       4    0.00    0.00    0.00    0.00    1.03   14.68    
0.00   84.28  11965.50
Average:       5    0.00    0.00    0.10    0.00    0.00    0.00    
0.00   99.90      2.80
Average:       6    0.00    0.00    0.00    0.00    0.00    0.00    
0.00  100.00      2.30
Average:       7    0.00    0.00    0.20    0.00    8.97   62.69    
0.00   28.13 110943.50


Affinity set to "ffffffff" / and intel e1000e is on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft  
%steal   %idle    intr/s
Average:     all    0.10    0.00    0.14    0.01    1.16   15.07    
0.00   83.52 185043.10
Average:       0    0.00    0.00    0.00    0.10    2.90   36.90    
0.00   60.10   9008.60
Average:       1    0.00    0.00    0.10    0.00    2.30   28.36    
0.00   69.24   9009.10
Average:       2    0.80    0.00    0.40    0.00    0.50   13.76    
0.00   84.54   9008.90
Average:       3    0.00    0.00    0.20    0.00    0.20    4.61    
0.00   94.98   9008.90
Average:       4    0.00    0.00    0.10    0.00    2.35   19.55    
0.00   77.99  14142.10
Average:       5    0.00    0.00    0.10    0.00    0.20    3.85    
0.00   95.84   9009.10
Average:       6    0.00    0.00    0.10    0.00    0.40    4.22    
0.00   95.28   9008.90
Average:       7    0.00    0.00    0.10    0.00    0.51    8.69    
0.00   90.70   9009.00

And if i split more RX/TX queues to different CPU-s i have more load 
done by:
CPU: Core 2, speed 2999.98 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a 
unit mask of 0x00 (Unhalted core cycles) count 100000
samples  %        image name               app name                 
symbol name
458001   29.5565  vmlinux                  vmlinux                  
native_read_tsc

If all interrupts are on one CPU i have the best results
So for me the best is to put ixgbe work on one CPU or make affinity to 
balance over all cpus

But something is wrong with my intel e1000e
because if i put intel e1000e with ixgbe on the same CPU system have 
100% cpu load and all hangs.


Re: results with diff affinity settings using ixgbe

From: Eric Dumazet <hidden>
Date: 2009-01-27 15:53:27

Paweł Staszewski a écrit :
I make some tests with affinity on my machine with some traffic load.
If someone want look:



Traffic in all test was 350Mbit/s TX and the same on RX

RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft 
%steal   %idle    intr/s
Average:     all    0.05    0.00    0.00    0.00    1.89   10.03   
0.00   88.03 221511.70
Average:       0    0.40    0.00    0.00    0.00    0.00    0.00   
0.00   99.60      0.70
Average:       1    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      0.80
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      0.70
Average:       3    0.00    0.00    0.10    0.00    0.00    0.40   
0.00   99.50      0.70
Average:       4    0.00    0.00    0.00    0.00    2.06   18.74   
0.00   79.20  12870.50
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      1.30
Average:       6    0.00    0.00    0.00    0.00    2.65   57.49   
0.00   39.86  59410.60
Average:       7    0.00    0.00    0.00    0.00   10.50    5.00   
0.00   84.50  53977.90


RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu1
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft 
%steal   %idle    intr/s
Average:     all    0.08    0.00    0.09    0.00    0.75   14.24   
0.00   84.84 215755.20
Average:       0    0.50    0.00    0.00    0.00    0.00    0.00   
0.00   99.50      1.30
Average:       1    0.00    0.00    0.53    0.00    2.34   36.91   
0.00   60.21   9771.90
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      1.40
Average:       3    0.00    0.00    0.00    0.00    0.00    0.20   
0.00   99.80      1.30
Average:       4    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      1.30
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      1.80
Average:       6    0.00    0.00    0.20    0.00    2.65   78.51   
0.00   18.64  54691.70
Average:       7    0.00    0.00    0.00    0.00    1.03    0.51   
0.00   98.46  54060.60


All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu1
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft 
%steal   %idle    intr/s
Average:     all    0.07    0.00    0.10    0.00    1.19    9.44   
0.00   89.19 210155.50
Average:       0    0.60    0.00    0.00    0.00    0.00    0.00   
0.00   99.40      0.60
Average:       1    0.00    0.00    0.41    0.00    2.87   16.27   
0.00   80.45  13045.30
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      0.70
Average:       3    0.10    0.00    0.30    0.00    0.00    0.20   
0.00   99.40      0.60
Average:       4    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      0.70
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      1.10
Average:       6    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      0.60
Average:       7    0.00    0.00    0.10    0.00    6.77   60.00   
0.00   33.13 107242.50


All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft 
%steal   %idle    intr/s
Average:     all    0.05    0.00    0.04    0.00    1.24    9.55   
0.00   89.12 212186.90
Average:       0    0.40    0.00    0.00    0.00    0.00    0.00   
0.00   99.60      2.20
Average:       1    0.10    0.00    0.00    0.00    0.00    0.00   
0.00   99.90      2.30
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      2.20
Average:       3    0.00    0.00    0.00    0.00    0.00    0.30   
0.00   99.70      2.20
Average:       4    0.00    0.00    0.00    0.00    1.03   14.68   
0.00   84.28  11965.50
Average:       5    0.00    0.00    0.10    0.00    0.00    0.00   
0.00   99.90      2.80
Average:       6    0.00    0.00    0.00    0.00    0.00    0.00   
0.00  100.00      2.30
Average:       7    0.00    0.00    0.20    0.00    8.97   62.69   
0.00   28.13 110943.50


Affinity set to "ffffffff" / and intel e1000e is on cpu4
Average:     CPU   %user   %nice    %sys %iowait    %irq   %soft 
%steal   %idle    intr/s
Average:     all    0.10    0.00    0.14    0.01    1.16   15.07   
0.00   83.52 185043.10
Average:       0    0.00    0.00    0.00    0.10    2.90   36.90   
0.00   60.10   9008.60
Average:       1    0.00    0.00    0.10    0.00    2.30   28.36   
0.00   69.24   9009.10
Average:       2    0.80    0.00    0.40    0.00    0.50   13.76   
0.00   84.54   9008.90
Average:       3    0.00    0.00    0.20    0.00    0.20    4.61   
0.00   94.98   9008.90
Average:       4    0.00    0.00    0.10    0.00    2.35   19.55   
0.00   77.99  14142.10
Average:       5    0.00    0.00    0.10    0.00    0.20    3.85   
0.00   95.84   9009.10
Average:       6    0.00    0.00    0.10    0.00    0.40    4.22   
0.00   95.28   9008.90
Average:       7    0.00    0.00    0.10    0.00    0.51    8.69   
0.00   90.70   9009.00

And if i split more RX/TX queues to different CPU-s i have more load
done by:
CPU: Core 2, speed 2999.98 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a
unit mask of 0x00 (Unhalted core cycles) count 100000
samples  %        image name               app name                
symbol name
458001   29.5565  vmlinux                  vmlinux                 
native_read_tsc

If all interrupts are on one CPU i have the best results
So for me the best is to put ixgbe work on one CPU or make affinity to
balance over all cpus
I am confused by all these numbers. What is your goal exactly ?

If one CPU is able to do the whole workload, it will be faster too.

All other cpus are idle and wont fight with cache lines.

But something is wrong with my intel e1000e
because if i put intel e1000e with ixgbe on the same CPU system have
100% cpu load and all hangs.

Try to reproduce the bug and submit it ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help