Date: Wed, 3 Feb 2016 16:02:54 +0000 From: "hiren (hiren panchasara)" <phabric-noreply@FreeBSD.org> To: transport@freebsd.org Subject: [Differential] [Request, 103 lines] D5173: Rework initial congestion window calculation. Message-ID: <differential-rev-PHID-DREV-tiq6pccmtojpbvxymmza-req@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
--b1_091477204b4256e1a1e0967da5332176 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit hiren created this revision. hiren added a reviewer: lstewart. hiren added a subscriber: transport. Herald added a subscriber: imp. Herald added a reviewer: transport. REVISION SUMMARY Rework initial congestion window calculation. The patch is my first (barely compiling) attempt at: 1. add ability to specify initcwnd in number of bytes 2. move entire calculation into a separate function 3. add a new sysctl to enable RFC6928 which is ON by default 4. https://reviews.freebsd.org/D5124's fix included. Approach here is, user can specify initcwnd of choice in number of segments or bytes. If none is present, we default to RFC6928 and have initcwnd as 10 segments. AFAIK, this is not changing the default behavior of what we have in FreeBSD-head right now. OR at least, that is the plan. This change also makes enabling RFC3390 (to get initcwnd at 4 segments) more obvious/easier. (You just have to disable RFC6928.) Suggestions? (I need to remember to do any manpage updates with this.) TEST PLAN I'll work on it once we have a general consensus on the approach. REPOSITORY rS FreeBSD src repository BRANCH rework_initcwnd REVISION DETAIL https://reviews.freebsd.org/D5173 AFFECTED FILES sys/netinet/cc/cc_newreno.c sys/netinet/tcp_input.c sys/netinet/tcp_var.h EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: hiren, lstewart, transport Cc: imp, transport --b1_091477204b4256e1a1e0967da5332176 Content-Type: text/x-patch; charset=utf-8; name="D5173.12966.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5173.12966.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0L3RjcF92YXIuaCBiL3N5cy9uZXRpbmV0L3RjcF92YXIu aAotLS0gYS9zeXMvbmV0aW5ldC90Y3BfdmFyLmgKKysrIGIvc3lzL25ldGluZXQvdGNwX3Zhci5o CkBAIC02OTMsNyArNjkzLDkgQEAKIFZORVRfREVDTEFSRShpbnQsIHRjcF9taW5tc3MpOwogVk5F VF9ERUNMQVJFKGludCwgdGNwX2RlbGFja19lbmFibGVkKTsKIFZORVRfREVDTEFSRShpbnQsIHRj cF9kb19yZmMzMzkwKTsKK1ZORVRfREVDTEFSRShpbnQsIHRjcF9kb19yZmM2OTI4KTsKIFZORVRf REVDTEFSRShpbnQsIHRjcF9pbml0Y3duZF9zZWdtZW50cyk7CitWTkVUX0RFQ0xBUkUoaW50LCB0 Y3BfaW5pdGN3bmRfYnl0ZXMpOwogVk5FVF9ERUNMQVJFKGludCwgdGNwX3NlbmRzcGFjZSk7CiBW TkVUX0RFQ0xBUkUoaW50LCB0Y3BfcmVjdnNwYWNlKTsKIFZORVRfREVDTEFSRShpbnQsIHBhdGhf bXR1X2Rpc2NvdmVyeSk7CkBAIC03MDUsNyArNzA3LDkgQEAKICNkZWZpbmUJVl90Y3BfbWlubXNz CQlWTkVUKHRjcF9taW5tc3MpCiAjZGVmaW5lCVZfdGNwX2RlbGFja19lbmFibGVkCVZORVQodGNw X2RlbGFja19lbmFibGVkKQogI2RlZmluZQlWX3RjcF9kb19yZmMzMzkwCVZORVQodGNwX2RvX3Jm YzMzOTApCisjZGVmaW5lCVZfdGNwX2RvX3JmYzY5MjgJVk5FVCh0Y3BfZG9fcmZjNjkyOCkKICNk ZWZpbmUJVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMJVk5FVCh0Y3BfaW5pdGN3bmRfc2VnbWVudHMp CisjZGVmaW5lCVZfdGNwX2luaXRjd25kX2J5dGVzCVZORVQodGNwX2luaXRjd25kX2J5dGVzKQog I2RlZmluZQlWX3RjcF9zZW5kc3BhY2UJCVZORVQodGNwX3NlbmRzcGFjZSkKICNkZWZpbmUJVl90 Y3BfcmVjdnNwYWNlCQlWTkVUKHRjcF9yZWN2c3BhY2UpCiAjZGVmaW5lCVZfcGF0aF9tdHVfZGlz Y292ZXJ5CVZORVQocGF0aF9tdHVfZGlzY292ZXJ5KQpAQCAtODQ1LDYgKzg0OSw3IEBACiBpbnQJ IHRjcF9uZXdyZW5vKHN0cnVjdCB0Y3BjYiAqLCBzdHJ1Y3QgdGNwaGRyICopOwogdV9sb25nCSB0 Y3Bfc2VxX3N1YnRyYWN0KHVfbG9uZywgdV9sb25nICk7CiBpbnQJIHRjcF9jb21wdXRlX3BpcGUo c3RydWN0IHRjcGNiICopOwordV9sb25nCSB0Y3BfaW5pdGN3bmQoc3RydWN0IHRjcGNiICosIHVf aW50KTsKIAogc3RhdGljIGlubGluZSB2b2lkCiB0Y3BfZmllbGRzX3RvX2hvc3Qoc3RydWN0IHRj cGhkciAqdGgpCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldC90Y3BfaW5wdXQuYyBiL3N5cy9uZXRp bmV0L3RjcF9pbnB1dC5jCi0tLSBhL3N5cy9uZXRpbmV0L3RjcF9pbnB1dC5jCisrKyBiL3N5cy9u ZXRpbmV0L3RjcF9pbnB1dC5jCkBAIC0xNjgsMTEgKzE2OCwyMSBAQAogICAgICZWTkVUX05BTUUo dGNwX2RvX3JmYzMzOTApLCAwLAogICAgICJFbmFibGUgUkZDIDMzOTAgKEluY3JlYXNpbmcgVENQ J3MgSW5pdGlhbCBDb25nZXN0aW9uIFdpbmRvdykiKTsKIAotVk5FVF9ERUZJTkUoaW50LCB0Y3Bf aW5pdGN3bmRfc2VnbWVudHMpID0gMTA7CitWTkVUX0RFRklORShpbnQsIHRjcF9kb19yZmM2OTI4 KSA9IDE7CitTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9BVVRPLCByZmM2OTI4LCBDVExG TEFHX1ZORVQgfCBDVExGTEFHX1JXLAorICAgICZWTkVUX05BTUUodGNwX2RvX3JmYzY5MjgpLCAw LAorICAgICJFbmFibGUgUkZDIDY5MjggKEluY3JlYXNpbmcgVENQJ3MgSW5pdGlhbCBDb25nZXN0 aW9uIFdpbmRvdykiKTsKKworVk5FVF9ERUZJTkUoaW50LCB0Y3BfaW5pdGN3bmRfc2VnbWVudHMp ID0gMDsKIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIGluaXRjd25kX3NlZ21l bnRzLAogICAgIENUTEZMQUdfVk5FVCB8IENUTEZMQUdfUlcsICZWTkVUX05BTUUodGNwX2luaXRj d25kX3NlZ21lbnRzKSwgMCwKICAgICAiU2xvdy1zdGFydCBmbGlnaHQgc2l6ZSAoaW5pdGlhbCBj b25nZXN0aW9uIHdpbmRvdykgaW4gbnVtYmVyIG9mIHNlZ21lbnRzIik7CiAKK1ZORVRfREVGSU5F KGludCwgdGNwX2luaXRjd25kX2J5dGVzKSA9IDA7CitTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3As IE9JRF9BVVRPLCBpbml0Y3duZF9ieXRlcywKKyAgICBDVExGTEFHX1ZORVQgfCBDVExGTEFHX1JX LCAmVk5FVF9OQU1FKHRjcF9pbml0Y3duZF9ieXRlcyksIDAsCisgICAgIlNsb3ctc3RhcnQgZmxp Z2h0IHNpemUgKGluaXRpYWwgY29uZ2VzdGlvbiB3aW5kb3cpIGluIG51bWJlciBvZiBieXRlcyIp OworCiBWTkVUX0RFRklORShpbnQsIHRjcF9kb19yZmMzNDY1KSA9IDE7CiBTWVNDVExfSU5UKF9u ZXRfaW5ldF90Y3AsIE9JRF9BVVRPLCByZmMzNDY1LCBDVExGTEFHX1ZORVQgfCBDVExGTEFHX1JX LAogICAgICZWTkVUX05BTUUodGNwX2RvX3JmYzM0NjUpLCAwLApAQCAtMzQ5LDM0ICszNTksOCBA QAogCQlUQ1BTVEFUX0lOQyh0Y3BzX3VzZWRzc3RocmVzaCk7CiAJfQogCi0JLyoKLQkgKiBTZXQg dGhlIGluaXRpYWwgc2xvdy1zdGFydCBmbGlnaHQgc2l6ZS4KLQkgKgotCSAqIFJGQzU2ODEgU2Vj dGlvbiAzLjEgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGNvbnNlcnZhdGl2ZSB2YWx1ZXMuCi0JICog UkZDMzM5MCBzcGVjaWZpZXMgc2xpZ2h0bHkgbW9yZSBhZ2dyZXNzaXZlIHZhbHVlcy4KLQkgKiBS RkM2OTI4IGluY3JlYXNlcyBpdCB0byB0ZW4gc2VnbWVudHMuCi0JICogU3VwcG9ydCBmb3IgdXNl ciBzcGVjaWZpZWQgdmFsdWUgZm9yIGluaXRpYWwgZmxpZ2h0IHNpemUuCi0JICoKLQkgKiBJZiBh IFNZTiBvciBTWU4vQUNLIHdhcyBsb3N0IGFuZCByZXRyYW5zbWl0dGVkLCB3ZSBoYXZlIHRvCi0J ICogcmVkdWNlIHRoZSBpbml0aWFsIENXTkQgdG8gb25lIHNlZ21lbnQgYXMgY29uZ2VzdGlvbiBp cyBsaWtlbHkKLQkgKiByZXF1aXJpbmcgdXMgdG8gYmUgY2F1dGlvdXMuCi0JICovCi0JaWYgKHRw LT5zbmRfY3duZCA9PSAxKQotCQl0cC0+c25kX2N3bmQgPSBtYXhzZWc7CQkvKiBTWU4oLUFDSykg bG9zdCAqLwotCWVsc2UgaWYgKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzKQotCQl0cC0+c25kX2N3 bmQgPSBtaW4oVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgKiBtYXhzZWcsCi0JCSAgICBtYXgoMiAq IG1heHNlZywgVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgKiAxNDYwKSk7Ci0JZWxzZSBpZiAoVl90 Y3BfZG9fcmZjMzM5MCkKLQkJdHAtPnNuZF9jd25kID0gbWluKDQgKiBtYXhzZWcsIG1heCgyICog bWF4c2VnLCA0MzgwKSk7Ci0JZWxzZSB7Ci0JCS8qIFBlciBSRkM1NjgxIFNlY3Rpb24gMy4xICov Ci0JCWlmIChtYXhzZWcgPiAyMTkwKQotCQkJdHAtPnNuZF9jd25kID0gMiAqIG1heHNlZzsKLQkJ ZWxzZSBpZiAobWF4c2VnID4gMTA5NSkKLQkJCXRwLT5zbmRfY3duZCA9IDMgKiBtYXhzZWc7Ci0J CWVsc2UKLQkJCXRwLT5zbmRfY3duZCA9IDQgKiBtYXhzZWc7Ci0JfQorCS8qIERldGVybWluZSB0 aGUgaW5pdGlhbCBjb25nZXN0aW9uIHdpbmRvdyAqLworCXRwLT5zbmRfY3duZCA9IHRjcF9pbml0 Y3duZCh0cCwgbWF4c2VnKTsKIAogCWlmIChDQ19BTEdPKHRwKS0+Y29ubl9pbml0ICE9IE5VTEwp CiAJCUNDX0FMR08odHApLT5jb25uX2luaXQodHAtPmNjdik7CkBAIC0zODI2LDMgKzM4MTAsNTEg QEAKIAkJdHAtPnNhY2toaW50LnNhY2tfYnl0ZXNfcmV4bWl0IC0KIAkJdHAtPnNhY2toaW50LnNh Y2tlZF9ieXRlcyk7CiB9CisKKy8qCisgKiBTZXQgdGhlIGluaXRpYWwgc2xvdy1zdGFydCBmbGln aHQgc2l6ZS4KKyAqCisgKiBTdXBwb3J0IGZvciB1c2VyIHNwZWNpZmllZCB2YWx1ZSBmb3IgaW5p dGlhbCBmbGlnaHQgc2l6ZS4KKyAqIFJGQzY5MjggaW5jcmVhc2VzIGl0IHRvIHRlbiBzZWdtZW50 cy4KKyAqIFJGQzMzOTAgc3BlY2lmaWVzIHNsaWdodGx5IG1vcmUgYWdncmVzc2l2ZSB2YWx1ZXMu CisgKiBSRkM1NjgxIFNlY3Rpb24gMy4xIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBjb25zZXJ2YXRp dmUgdmFsdWVzLgorICoKKyAqIElmIGEgU1lOIG9yIFNZTi9BQ0sgd2FzIGxvc3QgYW5kIHJldHJh bnNtaXR0ZWQsIHdlIGhhdmUgdG8KKyAqIHJlZHVjZSB0aGUgaW5pdGlhbCBDV05EIHRvIG9uZSBz ZWdtZW50IGFzIGNvbmdlc3Rpb24gaXMgbGlrZWx5CisgKiByZXF1aXJpbmcgdXMgdG8gYmUgY2F1 dGlvdXMuCisgKgorICogTm90ZTogVGhlICJtYWdpYyIgbnVtYmVycyBiZWxvdyBhcmUgZGlyZWN0 bHkgZGVyaXZlZCBmcm9tIHRoZQorICogcmVmZXJlbmNlZCBSRkNzIGFuZCBhcmUga2VwdCBhcyBz dWNoIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCisgKi8KK3VfbG9uZwordGNwX2luaXRjd25kKHN0 cnVjdCB0Y3BjYiAqdHAsIHVfaW50IG1heHNlZykKK3sKKwl1X2xvbmcgaW5pdGN3bmQ7CisJaWYg KHRwLT5zbmRfY3duZCA9PSAxKQorCQlpbml0Y3duZCA9IG1heHNlZzsJCS8qIFNZTigtQUNLKSBs b3N0ICovCisJZWxzZSBpZiAoVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgJiYgVl90Y3BfaW5pdGN3 bmRfYnl0ZXMpCisJCWluaXRjd25kID0gbWF4KFZfdGNwX2luaXRjd25kX2J5dGVzLAorCQkgICAg bWluKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogbWF4c2VnLAorCQkgICAgbWF4KDIgKiBtYXhz ZWcsIFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogMTQ2MCkpKTsKKwllbHNlIGlmIChWX3RjcF9p bml0Y3duZF9zZWdtZW50cyAmJiAhVl90Y3BfaW5pdGN3bmRfYnl0ZXMpCisJCWluaXRjd25kID0g bWluKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogbWF4c2VnLAorCQkgICAgbWF4KDIgKiBtYXhz ZWcsIFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogMTQ2MCkpOworCWVsc2UgaWYgKFZfdGNwX2lu aXRjd25kX2J5dGVzLCAhVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMpCisJCWluaXRjd25kID0gbWlu KFZfdGNwX2luaXRjd25kX2J5dGVzLAorCQkgICAgbWF4KDIgKiBtYXhzZWcsIFZfdGNwX2luaXRj d25kX2J5dGVzKSk7CisJZWxzZSBpZiAoVl90Y3BfZG9fcmZjNjkyOCkKKwkJaW5pdGN3bmQgPSBt aW4oMTAgKiBtYXhzZWcsIG1heCgyICogbWF4c2VnLCAxNDYwMCkpOworCWVsc2UgaWYgKFZfdGNw X2RvX3JmYzMzOTApCisJCWluaXRjd25kID0gbWluKDQgKiBtYXhzZWcsIG1heCgyICogbWF4c2Vn LCA0MzgwKSk7CisJZWxzZSB7CisJCS8qIFBlciBSRkM1NjgxIFNlY3Rpb24gMy4xICovCisJCWlm IChtYXhzZWcgPiAyMTkwKQorCQkJaW5pdGN3bmQgPSAyICogbWF4c2VnOworCQllbHNlIGlmICht YXhzZWcgPiAxMDk1KQorCQkJaW5pdGN3bmQgPSAzICogbWF4c2VnOworCQllbHNlCisJCQlpbml0 Y3duZCA9IDQgKiBtYXhzZWc7CisJfQorCisJcmV0dXJuIChpbml0Y3duZCk7Cit9CmRpZmYgLS1n aXQgYS9zeXMvbmV0aW5ldC9jYy9jY19uZXdyZW5vLmMgYi9zeXMvbmV0aW5ldC9jYy9jY19uZXdy ZW5vLmMKLS0tIGEvc3lzL25ldGluZXQvY2MvY2NfbmV3cmVuby5jCisrKyBiL3N5cy9uZXRpbmV0 L2NjL2NjX25ld3Jlbm8uYwpAQCAtMTUxLDcgKzE1MSw3IEBACiBzdGF0aWMgdm9pZAogbmV3cmVu b19hZnRlcl9pZGxlKHN0cnVjdCBjY192YXIgKmNjdikKIHsKLQlpbnQgcnc7CisJdV9sb25nIHJ3 OwogCiAJLyoKIAkgKiBJZiB3ZSd2ZSBiZWVuIGlkbGUgZm9yIG1vcmUgdGhhbiBvbmUgcmV0cmFu c21pdCB0aW1lb3V0IHRoZSBvbGQKQEAgLTE2NiwxMSArMTY2LDcgQEAKIAkgKgogCSAqIFNlZSBS RkM1NjgxIFNlY3Rpb24gNC4xLiAiUmVzdGFydGluZyBJZGxlIENvbm5lY3Rpb25zIi4KIAkgKi8K LQlpZiAoVl90Y3BfZG9fcmZjMzM5MCkKLQkJcncgPSBtaW4oNCAqIENDVihjY3YsIHRfbWF4c2Vn KSwKLQkJICAgIG1heCgyICogQ0NWKGNjdiwgdF9tYXhzZWcpLCA0MzgwKSk7Ci0JZWxzZQotCQly dyA9IENDVihjY3YsIHRfbWF4c2VnKSAqIDI7CisJcncgPSB0Y3BfaW5pdGN3bmQoY2N2LT5jY3Zj LnRjcCwgQ0NWKGNjdiwgdF9tYXhzZWcpKTsKIAogCUNDVihjY3YsIHNuZF9jd25kKSA9IG1pbihy dywgQ0NWKGNjdiwgc25kX2N3bmQpKTsKIH0KCg== --b1_091477204b4256e1a1e0967da5332176--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-tiq6pccmtojpbvxymmza-req>