Crossbow - No per Rx ring Dynamic Polling
Notice that mdb shows the 8 interrupts are bound at CPUs 38-45
> ::interrupts
Device Shared Type MSG # State INO Mondo Pil CPU
e1000g#3 no MSI 6 enbl 0x26 0x26 6 50
e1000g#2 no MSI 3 enbl 0x25 0x25 6 49
e1000g#1 no MSI 2 enbl 0x22 0x22 6 36
e1000g#0 no MSI 1 enbl 0x21 0x21 6 37
ixgbe#0 no MSI-X 15 enbl 0x20 0x20 6 38
ixgbe#0 no MSI-X 14 enbl 0x1f 0x1f 6 39
ixgbe#0 no MSI-X 13 enbl 0x1e 0x1e 6 40
ixgbe#0 no MSI-X 12 enbl 0x1d 0x1d 6 41
ixgbe#0 no MSI-X 11 enbl 0x1c 0x1c 6 42
ixgbe#0 no MSI-X 10 enbl 0x1b 0x1b 6 43
ixgbe#0 no MSI-X 9 enbl 0x1a 0x1a 6 44
ixgbe#0 no MSI-X 8 enbl 0x19 0x19 6 45
And if you look at the mpstat below, you will notice that same CPU are taking
the interrupts but one in particular (CPU 44) is taking way higher load. Also
intrstat below shows that interrupts are coming on all 8 CPUs.
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 0 1 331 627 27 713 4 194 230 0 4468 10 20 0 70
1 0 0 94 523 36 493 6 130 89 0 1024 3 5 0 92
2 0 0 59 371 30 296 4 73 54 0 426 1 2 0 97
3 0 0 59 300 28 244 3 60 38 0 316 1 2 0 97
4 0 0 125 428 31 588 6 139 175 0 3315 6 14 0 79
5 0 0 56 259 31 253 4 60 55 0 650 2 3 0 95
6 0 0 47 218 31 200 3 45 33 0 395 1 2 0 97
7 0 0 44 202 27 187 3 42 34 0 279 1 1 0 98
8 0 1 159 485 34 740 8 194 221 0 4309 9 19 0 72
9 0 0 63 283 38 363 5 85 69 0 888 2 4 0 94
10 0 0 33 173 25 174 3 40 32 0 306 1 1 0 97
11 0 0 34 140 23 131 2 31 26 0 211 1 1 0 98
12 0 0 91 360 32 534 6 114 155 0 3072 6 12 0 82
13 0 0 35 155 27 179 3 38 43 0 655 2 3 0 96
14 0 0 28 98 18 97 1 20 24 0 221 1 1 0 98
15 0 0 18 83 13 81 1 16 26 0 233 1 1 0 98
16 0 1 147 465 36 721 7 183 230 0 4449 10 17 0 73
17 0 0 45 223 37 312 4 71 61 0 909 2 4 0 94
18 0 0 27 91 18 103 2 22 25 0 268 1 1 0 98
19 0 0 13 61 9 78 2 14 19 0 131 0 1 0 99
20 0 0 103 346 31 539 8 110 159 0 3471 7 13 0 80
21 0 0 38 110 20 146 2 28 33 0 427 1 2 0 97
22 0 0 9 44 7 60 1 10 18 0 181 0 1 0 99
23 0 0 5 17 2 20 0 4 10 0 55 0 0 0 99
24 0 0 49 243 24 403 6 93 66 0 1055 3 33 0 64
25 0 0 32 157 19 246 2 60 35 0 475 2 2 0 96
26 0 0 8 39 5 57 1 14 16 0 140 1 1 0 99
27 0 0 5 16 2 23 0 6 9 0 70 0 0 0 99
28 0 0 15 48 4 82 1 20 20 0 173 1 1 0 98
29 0 0 8 46 6 66 1 16 19 0 254 0 72 0 27
30 0 0 4 22 2 35 0 7 7 0 54 0 0 0 99
31 0 0 2 7 0 9 0 2 3 0 21 0 0 0 100
32 0 1 152 463 38 713 9 181 207 0 3719 9 16 0 75
33 0 0 43 218 36 313 5 68 64 0 784 2 4 0 94
34 0 0 13 74 16 93 2 18 21 0 148 1 1 0 99
35 0 0 6 28 4 40 1 7 14 0 120 1 1 0 99
36 0 0 69 305 29 487 7 97 108 0 1912 4 8 0 88
37 0 0 14 68 12 98 2 18 25 0 239 1 1 0 98
38 0 0 6 21 3 31 1 5 12 0 86 0 0 0 99
39 0 0 2563 5506 3907 3282 28 34 1170 0 178 0 21 0 78
40 0 0 2553 5117 3948 2410 38 150 1192 0 504 1 21 0 77
41 0 0 2651 5221 4232 2011 25 53 1195 0 210 0 20 0 80
42 0 0 3078 5700 4743 2069 21 28 1285 0 125 0 22 0 78
43 0 0 3280 5837 4777 2118 19 24 1328 0 101 0 22 0 78
44 0 0 3143 19566 18801 1773 50 44 1285 0 68 0 65 0 35
45 0 0 4570 7748 6838 1984 23 27 1697 0 118 0 29 0 71
46 0 0 281 3375 2470 1679 14 24 463 0 126 0 15 0 84
47 0 0 154 1624 164 2870 22 34 777 0 149 0 12 0 88
48 0 0 208 1705 26 3279 47 171 595 0 627 2 14 0 85
49 0 0 187 1705 16 3286 34 71 616 0 262 1 10 0 89
50 0 0 148 1246 7 2355 21 36 435 0 201 1 7 0 92
51 0 0 140 1551 5 3021 22 33 591 0 184 0 9 0 90
52 0 0 452 1512 21 2889 31 79 526 0 309 1 9 0 90
53 0 0 161 1376 8 2647 24 38 486 0 221 1 9 0 91
54 0 0 1923 1601 6 3121 22 31 586 0 151 0 11 0 88
55 0 0 2 12 2 11 0 3 2 0 23 0 0 0 100
56 0 0 3260 7458 30 15487 610 306 458 0 1187 4 18 0 79
57 0 0 50 251 36 352 5 72 63 0 1004 2 4 0 93
58 0 0 17 87 19 107 2 21 19 0 200 1 1 0 98
59 0 0 7 33 7 39 1 7 7 0 61 0 0 0 99
60 0 0 86 423 29 697 6 118 114 0 1569 4 7 0 89
61 0 0 28 129 21 178 4 27 32 0 439 2 2 0 96
62 0 0 7 46 9 61 1 8 13 0 136 0 1 0 99
63 0 0 1 16 3 21 0 2 4 0 21 0 0 0 100
The relevant intrstat output shows interrupts per second and netstat
shows the packets per second.
device | cpu36 %tim cpu37 %tim cpu38 %tim cpu39 %tim
-------------+------------------------------------------------------------
cnex#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#0 | 0 0.0 20 0.0 0 0.0 0 0.0
e1000g#1 | 1 0.0 0 0.0 0 0.0 0 0.0
ehci#0 | 0 0.0 0 0.0 0 0.0 0 0.0
emlxs#0 | 0 0.0 0 0.0 0 0.0 0 0.0
ixgbe#0 | 0 0.0 0 0.0 0 0.0 1294 2.2
mpt#0 | 0 0.0 0 0.0 0 0.0 0 0.0
device | cpu40 %tim cpu41 %tim cpu42 %tim cpu43 %tim
-------------+------------------------------------------------------------
cnex#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#1 | 0 0.0 0 0.0 0 0.0 0 0.0
ehci#0 | 0 0.0 0 0.0 0 0.0 0 0.0
emlxs#0 | 0 0.0 0 0.0 0 0.0 0 0.0
ixgbe#0 | 2114 3.4 8178 11.7 7001 12.1 4037 6.1
mpt#0 | 0 0.0 0 0.0 0 0.0 0 0.0
device | cpu44 %tim cpu45 %tim cpu46 %tim cpu47 %tim
-------------+------------------------------------------------------------
cnex#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#1 | 0 0.0 0 0.0 0 0.0 0 0.0
ehci#0 | 0 0.0 0 0.0 0 0.0 0 0.0
emlxs#0 | 0 0.0 0 0.0 2372 8.0 157 0.1
ixgbe#0 | 15191 50.8 5813 10.0 0 0.0 0 0.0
mpt#0 | 0 0.0 0 0.0 0 0.0 0 0.0
# netstat -ia 1
input e1000g output input (Total) output
packets errs packets errs colls packets errs packets errs colls
978 0 426 0 0 26882234 0 57050957 0 0
4 0 1 0 0 61284 0 128820 0 0
3 0 2 0 0 61015 0 129316 0 0
4 0 2 0 0 60878 0 128922 0 0