kern/183659: [tcp] [patch] TCP stack lock contention with short-lived connections

Julien Charbon jcharbon at verisign.com
Thu Nov 7 15:30:02 UTC 2013


The following reply was made to PR kern/183659; it has been noted by GNATS.

From: "Julien Charbon" <jcharbon at verisign.com>
To: bug-followup at freebsd.org
Cc:  
Subject: Re: kern/183659: [tcp] [patch] TCP stack lock contention with
 short-lived connections
Date: Thu, 07 Nov 2013 15:09:12 +0100

 ------------DUpEMRBHJWbgn0J5PBi2Pu
 Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes
 Content-Transfer-Encoding: 7bit
 
 
   Joined a first patch that removes INP_INFO lock from tcp_usr_accept():   
 This changes simply follows the advice made in corresponding code  
 comment:  "A better fix would prevent the socket from being placed in the  
 listen queue until all fields are fully initialized."  For more technical  
 details, check the comment in related change below:
 
 http://svnweb.freebsd.org/base?view=revision&revision=175612
 
   With this patch applied we see no regressions and a performance  
 improvement of ~5% i.e with 9.2 vanilla kernel:  52k TCP Queries Per  
 Second, with 9.2 + joined patch:  55k TCP QPS.
 
 -- 
 Julien
 ------------DUpEMRBHJWbgn0J5PBi2Pu
 Content-Disposition: attachment; filename=inp-info-accept.patch
 Content-Type: application/octet-stream; name=inp-info-accept.patch
 Content-Transfer-Encoding: Base64
 
 RnJvbTogSnVsaWVuIENoYXJib24gPGpjaGFyYm9uQHZlcmlzaWduLmNvbT4NClN1
 YmplY3Q6IFtQQVRDSF0gQWRkIG5ldyBzb2NrZXQgaW4gbGlzdGVuIHF1ZXVlIG9u
 bHkgd2hlbiBmdWxseSBpbml0aWFsaXNlZA0KDQotLS0NCiBzeXMvbmV0aW5ldC90
 Y3Bfc3luY2FjaGUuYyB8IDQgKysrLQ0KIHN5cy9uZXRpbmV0L3RjcF91c3JyZXEu
 YyAgIHwgOSAtLS0tLS0tLS0NCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u
 cygrKSwgMTAgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5l
 dC90Y3Bfc3luY2FjaGUuYyBiL3N5cy9uZXRpbmV0L3RjcF9zeW5jYWNoZS5jDQpp
 bmRleCBhZjE2NTFhLi5lYjczMzU2IDEwMDY0NA0KLS0tIGEvc3lzL25ldGluZXQv
 dGNwX3N5bmNhY2hlLmMNCisrKyBiL3N5cy9uZXRpbmV0L3RjcF9zeW5jYWNoZS5j
 DQpAQCAtNjYwLDcgKzY2MCw3IEBAIHN5bmNhY2hlX3NvY2tldChzdHJ1Y3Qgc3lu
 Y2FjaGUgKnNjLCBzdHJ1Y3Qgc29ja2V0ICpsc28sIHN0cnVjdCBtYnVmICptKQ0K
 IAkgKiBjb25uZWN0aW9uIHdoZW4gdGhlIFNZTiBhcnJpdmVkLiAgSWYgd2UgY2Fu
 J3QgY3JlYXRlDQogCSAqIHRoZSBjb25uZWN0aW9uLCBhYm9ydCBpdC4NCiAJICov
 DQotCXNvID0gc29uZXdjb25uKGxzbywgU1NfSVNDT05ORUNURUQpOw0KKwlzbyA9
 IHNvbmV3Y29ubihsc28sIDApOw0KIAlpZiAoc28gPT0gTlVMTCkgew0KIAkJLyoN
 CiAJCSAqIERyb3AgdGhlIGNvbm5lY3Rpb247IHdlIHdpbGwgZWl0aGVyIHNlbmQg
 YSBSU1Qgb3INCkBAIC04OTAsNiArODkwLDggQEAgc3luY2FjaGVfc29ja2V0KHN0
 cnVjdCBzeW5jYWNoZSAqc2MsIHN0cnVjdCBzb2NrZXQgKmxzbywgc3RydWN0IG1i
 dWYgKm0pDQogDQogCUlOUF9XVU5MT0NLKGlucCk7DQogDQorCXNvaXNjb25uZWN0
 ZWQoc28pOw0KKw0KIAlUQ1BTVEFUX0lOQyh0Y3BzX2FjY2VwdHMpOw0KIAlyZXR1
 cm4gKHNvKTsNCiANCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldC90Y3BfdXNycmVx
 LmMgYi9zeXMvbmV0aW5ldC90Y3BfdXNycmVxLmMNCmluZGV4IGI4M2YzNGEuLjU2
 NmNjMzQgMTAwNjQ0DQotLS0gYS9zeXMvbmV0aW5ldC90Y3BfdXNycmVxLmMNCisr
 KyBiL3N5cy9uZXRpbmV0L3RjcF91c3JyZXEuYw0KQEAgLTYwOSwxMyArNjA5LDYg
 QEAgb3V0Og0KIC8qDQogICogQWNjZXB0IGEgY29ubmVjdGlvbi4gIEVzc2VudGlh
 bGx5IGFsbCB0aGUgd29yayBpcyBkb25lIGF0IGhpZ2hlciBsZXZlbHM7DQogICog
 anVzdCByZXR1cm4gdGhlIGFkZHJlc3Mgb2YgdGhlIHBlZXIsIHN0b3JpbmcgdGhy
 b3VnaCBhZGRyLg0KLSAqDQotICogVGhlIHJhdGlvbmFsZSBmb3IgYWNxdWlyaW5n
 IHRoZSB0Y2JpbmZvIGxvY2sgaGVyZSBpcyBzb21ld2hhdCBjb21wbGljYXRlZCwN
 Ci0gKiBhbmQgaXMgZGVzY3JpYmVkIGluIGRldGFpbCBpbiB0aGUgY29tbWl0IGxv
 ZyBlbnRyeSBmb3IgcjE3NTYxMi4gIEFjcXVpcmluZw0KLSAqIGl0IGRlbGF5cyBh
 biBhY2NlcHQoMikgcmFjaW5nIHdpdGggc29uZXdjb25uKCksIHdoaWNoIGluc2Vy
 dHMgdGhlIHNvY2tldA0KLSAqIGJlZm9yZSB0aGUgaW5wY2IgYWRkcmVzcy9wb3J0
 IGZpZWxkcyBhcmUgaW5pdGlhbGl6ZWQuICBBIGJldHRlciBmaXggd291bGQNCi0g
 KiBwcmV2ZW50IHRoZSBzb2NrZXQgZnJvbSBiZWluZyBwbGFjZWQgaW4gdGhlIGxp
 c3RlbiBxdWV1ZSB1bnRpbCBhbGwgZmllbGRzDQotICogYXJlIGZ1bGx5IGluaXRp
 YWxpemVkLg0KICAqLw0KIHN0YXRpYyBpbnQNCiB0Y3BfdXNyX2FjY2VwdChzdHJ1
 Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICoqbmFtKQ0KQEAgLTYzMiw3
 ICs2MjUsNiBAQCB0Y3BfdXNyX2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzbywgc3Ry
 dWN0IHNvY2thZGRyICoqbmFtKQ0KIA0KIAlpbnAgPSBzb3RvaW5wY2Ioc28pOw0K
 IAlLQVNTRVJUKGlucCAhPSBOVUxMLCAoInRjcF91c3JfYWNjZXB0OiBpbnAgPT0g
 TlVMTCIpKTsNCi0JSU5QX0lORk9fUkxPQ0soJlZfdGNiaW5mbyk7DQogCUlOUF9X
 TE9DSyhpbnApOw0KIAlpZiAoaW5wLT5pbnBfZmxhZ3MgJiAoSU5QX1RJTUVXQUlU
 IHwgSU5QX0RST1BQRUQpKSB7DQogCQllcnJvciA9IEVDT05OQUJPUlRFRDsNCkBA
 IC02NTIsNyArNjQ0LDYgQEAgdGNwX3Vzcl9hY2NlcHQoc3RydWN0IHNvY2tldCAq
 c28sIHN0cnVjdCBzb2NrYWRkciAqKm5hbSkNCiBvdXQ6DQogCVRDUERFQlVHMihQ
 UlVfQUNDRVBUKTsNCiAJSU5QX1dVTkxPQ0soaW5wKTsNCi0JSU5QX0lORk9fUlVO
 TE9DSygmVl90Y2JpbmZvKTsNCiAJaWYgKGVycm9yID09IDApDQogCQkqbmFtID0g
 aW5fc29ja2FkZHIocG9ydCwgJmFkZHIpOw0KIAlyZXR1cm4gZXJyb3I7
 
 ------------DUpEMRBHJWbgn0J5PBi2Pu--
 


More information about the freebsd-net mailing list