Commit 7805fdc
committed
http2: rewrite inbound flow control tracking
Add a new inflow type for tracking inbound flow control.
An inflow tracks both the window sent to the peer, and the
window we are willing to send. Updates are accumulated and
sent in a batch when the unsent window update is large
enough.
This change makes both the client and server use the same
algorithm to decide when to send window updates. This should
slightly reduce the rate of updates sent by the client, and
significantly reduce the rate sent by the server.
Fix a client flow control tracking bug: When processing data
for a canceled stream, the record of flow control consumed
by the peer was not updated to account for the discard
stream.
Fixes golang/go#28732
Fixes golang/go#56558
Change-Id: Id119d17b84b46f3dc2719f28a86758d9a10085d9
Reviewed-on: https://go-review.googlesource.com/c/net/+/448155
Reviewed-by: Brad Fitzpatrick <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
Run-TryBot: Damien Neil <[email protected]>1 parent 2aa8215 commit 7805fdc
File tree
6 files changed
+403
-206
lines changed- http2
6 files changed
+403
-206
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
11 | 79 | | |
12 | 80 | | |
13 | 81 | | |
14 | | - | |
| 82 | + | |
15 | 83 | | |
16 | 84 | | |
17 | | - | |
18 | | - | |
| 85 | + | |
| 86 | + | |
19 | 87 | | |
20 | | - | |
| 88 | + | |
21 | 89 | | |
22 | 90 | | |
23 | | - | |
| 91 | + | |
24 | 92 | | |
25 | | - | |
| 93 | + | |
26 | 94 | | |
27 | 95 | | |
28 | 96 | | |
29 | 97 | | |
30 | 98 | | |
31 | 99 | | |
32 | 100 | | |
33 | | - | |
| 101 | + | |
34 | 102 | | |
35 | 103 | | |
36 | 104 | | |
| |||
42 | 110 | | |
43 | 111 | | |
44 | 112 | | |
45 | | - | |
| 113 | + | |
46 | 114 | | |
47 | 115 | | |
48 | 116 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
12 | 64 | | |
13 | 65 | | |
14 | 66 | | |
| |||
29 | 81 | | |
30 | 82 | | |
31 | 83 | | |
32 | | - | |
33 | | - | |
| 84 | + | |
| 85 | + | |
34 | 86 | | |
35 | 87 | | |
36 | 88 | | |
| |||
51 | 103 | | |
52 | 104 | | |
53 | 105 | | |
54 | | - | |
55 | | - | |
| 106 | + | |
| 107 | + | |
56 | 108 | | |
57 | 109 | | |
58 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | | - | |
| 451 | + | |
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| |||
563 | 563 | | |
564 | 564 | | |
565 | 565 | | |
566 | | - | |
567 | | - | |
| 566 | + | |
| 567 | + | |
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
| |||
641 | 641 | | |
642 | 642 | | |
643 | 643 | | |
644 | | - | |
645 | | - | |
646 | | - | |
647 | | - | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
| |||
1503 | 1503 | | |
1504 | 1504 | | |
1505 | 1505 | | |
1506 | | - | |
| 1506 | + | |
1507 | 1507 | | |
1508 | 1508 | | |
1509 | 1509 | | |
| |||
1775 | 1775 | | |
1776 | 1776 | | |
1777 | 1777 | | |
1778 | | - | |
| 1778 | + | |
1779 | 1779 | | |
1780 | 1780 | | |
1781 | | - | |
1782 | | - | |
1783 | | - | |
1784 | | - | |
1785 | | - | |
1786 | 1781 | | |
1787 | 1782 | | |
1788 | 1783 | | |
| |||
1797 | 1792 | | |
1798 | 1793 | | |
1799 | 1794 | | |
1800 | | - | |
| 1795 | + | |
1801 | 1796 | | |
1802 | 1797 | | |
1803 | | - | |
1804 | 1798 | | |
1805 | 1799 | | |
1806 | 1800 | | |
| |||
1811 | 1805 | | |
1812 | 1806 | | |
1813 | 1807 | | |
1814 | | - | |
| 1808 | + | |
1815 | 1809 | | |
1816 | 1810 | | |
1817 | | - | |
1818 | 1811 | | |
1819 | 1812 | | |
1820 | 1813 | | |
| |||
1830 | 1823 | | |
1831 | 1824 | | |
1832 | 1825 | | |
1833 | | - | |
1834 | | - | |
1835 | | - | |
1836 | | - | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
1837 | 1832 | | |
1838 | 1833 | | |
1839 | 1834 | | |
| |||
2105 | 2100 | | |
2106 | 2101 | | |
2107 | 2102 | | |
2108 | | - | |
2109 | | - | |
| 2103 | + | |
2110 | 2104 | | |
2111 | 2105 | | |
2112 | 2106 | | |
| |||
2388 | 2382 | | |
2389 | 2383 | | |
2390 | 2384 | | |
2391 | | - | |
2392 | | - | |
2393 | | - | |
2394 | | - | |
2395 | | - | |
2396 | | - | |
2397 | | - | |
2398 | | - | |
2399 | | - | |
2400 | | - | |
2401 | | - | |
2402 | | - | |
2403 | | - | |
| 2385 | + | |
| 2386 | + | |
2404 | 2387 | | |
2405 | 2388 | | |
2406 | 2389 | | |
2407 | | - | |
| 2390 | + | |
2408 | 2391 | | |
2409 | | - | |
2410 | | - | |
2411 | | - | |
2412 | | - | |
2413 | | - | |
2414 | | - | |
2415 | 2392 | | |
2416 | | - | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
2417 | 2397 | | |
| 2398 | + | |
| 2399 | + | |
| 2400 | + | |
| 2401 | + | |
2418 | 2402 | | |
2419 | 2403 | | |
2420 | | - | |
| 2404 | + | |
2421 | 2405 | | |
2422 | 2406 | | |
2423 | | - | |
2424 | | - | |
2425 | | - | |
2426 | | - | |
2427 | | - | |
2428 | | - | |
2429 | | - | |
2430 | | - | |
2431 | | - | |
2432 | 2407 | | |
2433 | 2408 | | |
2434 | 2409 | | |
| |||
0 commit comments