This repository was archived by the owner on Oct 5, 2018. It is now read-only.
Commit 3b24d85
tcp/dccp: do not touch listener sk_refcnt under synflood
When a SYNFLOOD targets a non SO_REUSEPORT listener, multiple
cpus contend on sk->sk_refcnt and sk->sk_wmem_alloc changes.
By letting listeners use SOCK_RCU_FREE infrastructure,
we can relax TCP_LISTEN lookup rules and avoid touching sk_refcnt
Note that we still use SLAB_DESTROY_BY_RCU rules for other sockets,
only listeners are impacted by this change.
Peak performance under SYNFLOOD is increased by ~33% :
On my test machine, I could process 3.2 Mpps instead of 2.4 Mpps
Most consuming functions are now skb_set_owner_w() and sock_wfree()
contending on sk->sk_wmem_alloc when cooking SYNACK and freeing them.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>1 parent 3a5d1c0 commit 3b24d85
File tree
10 files changed
+134
-163
lines changed- include/net
- net
- dccp
- ipv4
- ipv6
- netfilter
10 files changed
+134
-163
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
| 70 | + | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| 74 | + | |
73 | 75 | | |
74 | 76 | | |
75 | | - | |
| 77 | + | |
76 | 78 | | |
77 | 79 | | |
78 | 80 | | |
| |||
81 | 83 | | |
82 | 84 | | |
83 | 85 | | |
84 | | - | |
| 86 | + | |
| 87 | + | |
85 | 88 | | |
86 | 89 | | |
87 | 90 | | |
| 91 | + | |
88 | 92 | | |
89 | 93 | | |
90 | 94 | | |
91 | 95 | | |
92 | 96 | | |
93 | 97 | | |
94 | | - | |
| 98 | + | |
95 | 99 | | |
96 | 100 | | |
97 | 101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | 103 | | |
107 | | - | |
108 | 104 | | |
109 | 105 | | |
110 | | - | |
| 106 | + | |
111 | 107 | | |
112 | 108 | | |
113 | 109 | | |
| |||
304 | 300 | | |
305 | 301 | | |
306 | 302 | | |
307 | | - | |
| 303 | + | |
| 304 | + | |
308 | 305 | | |
309 | 306 | | |
310 | | - | |
311 | | - | |
| 307 | + | |
312 | 308 | | |
313 | | - | |
314 | | - | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
315 | 317 | | |
316 | 318 | | |
317 | 319 | | |
| |||
322 | 324 | | |
323 | 325 | | |
324 | 326 | | |
| 327 | + | |
325 | 328 | | |
326 | 329 | | |
327 | | - | |
| 330 | + | |
328 | 331 | | |
| 332 | + | |
| 333 | + | |
329 | 334 | | |
330 | 335 | | |
331 | 336 | | |
332 | 337 | | |
333 | 338 | | |
334 | 339 | | |
335 | 340 | | |
336 | | - | |
| 341 | + | |
| 342 | + | |
337 | 343 | | |
338 | 344 | | |
339 | 345 | | |
340 | 346 | | |
| 347 | + | |
341 | 348 | | |
342 | 349 | | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
347 | 355 | | |
348 | 356 | | |
349 | 357 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
764 | 764 | | |
765 | 765 | | |
766 | 766 | | |
| 767 | + | |
767 | 768 | | |
768 | 769 | | |
769 | 770 | | |
| |||
801 | 802 | | |
802 | 803 | | |
803 | 804 | | |
804 | | - | |
| 805 | + | |
805 | 806 | | |
806 | 807 | | |
807 | 808 | | |
| |||
830 | 831 | | |
831 | 832 | | |
832 | 833 | | |
| 834 | + | |
833 | 835 | | |
834 | 836 | | |
835 | 837 | | |
| |||
886 | 888 | | |
887 | 889 | | |
888 | 890 | | |
889 | | - | |
| 891 | + | |
| 892 | + | |
890 | 893 | | |
891 | 894 | | |
892 | 895 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
642 | 642 | | |
643 | 643 | | |
644 | 644 | | |
| 645 | + | |
645 | 646 | | |
646 | 647 | | |
647 | 648 | | |
| |||
670 | 671 | | |
671 | 672 | | |
672 | 673 | | |
673 | | - | |
| 674 | + | |
674 | 675 | | |
675 | 676 | | |
676 | 677 | | |
| |||
699 | 700 | | |
700 | 701 | | |
701 | 702 | | |
| 703 | + | |
702 | 704 | | |
703 | 705 | | |
704 | 706 | | |
| |||
752 | 754 | | |
753 | 755 | | |
754 | 756 | | |
755 | | - | |
| 757 | + | |
| 758 | + | |
756 | 759 | | |
757 | 760 | | |
758 | 761 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
775 | 775 | | |
776 | 776 | | |
777 | 777 | | |
778 | | - | |
779 | 778 | | |
780 | 779 | | |
781 | 780 | | |
782 | 781 | | |
783 | 782 | | |
784 | | - | |
| 783 | + | |
785 | 784 | | |
786 | 785 | | |
787 | 786 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
202 | | - | |
| 201 | + | |
| 202 | + | |
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
216 | | - | |
217 | 215 | | |
218 | 216 | | |
219 | | - | |
220 | | - | |
| 217 | + | |
| 218 | + | |
221 | 219 | | |
222 | 220 | | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
| 221 | + | |
227 | 222 | | |
228 | 223 | | |
229 | | - | |
230 | | - | |
231 | 224 | | |
232 | 225 | | |
233 | 226 | | |
234 | 227 | | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
244 | 232 | | |
245 | 233 | | |
| 234 | + | |
| 235 | + | |
246 | 236 | | |
247 | 237 | | |
248 | 238 | | |
249 | 239 | | |
250 | 240 | | |
251 | 241 | | |
252 | 242 | | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | 243 | | |
272 | 244 | | |
273 | 245 | | |
| |||
508 | 480 | | |
509 | 481 | | |
510 | 482 | | |
511 | | - | |
| 483 | + | |
| 484 | + | |
512 | 485 | | |
513 | 486 | | |
514 | 487 | | |
| |||
535 | 508 | | |
536 | 509 | | |
537 | 510 | | |
| 511 | + | |
538 | 512 | | |
539 | 513 | | |
540 | 514 | | |
541 | 515 | | |
542 | 516 | | |
543 | | - | |
| 517 | + | |
544 | 518 | | |
545 | | - | |
| 519 | + | |
| 520 | + | |
546 | 521 | | |
547 | | - | |
| 522 | + | |
548 | 523 | | |
549 | 524 | | |
550 | 525 | | |
551 | | - | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
552 | 530 | | |
553 | 531 | | |
554 | 532 | | |
| |||
684 | 662 | | |
685 | 663 | | |
686 | 664 | | |
687 | | - | |
688 | | - | |
689 | | - | |
| 665 | + | |
| 666 | + | |
690 | 667 | | |
691 | 668 | | |
692 | 669 | | |
| |||
0 commit comments