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