From owner-freebsd-net@freebsd.org Thu Jun 2 03:10:10 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5725FB667D1 for ; Thu, 2 Jun 2016 03:10:10 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mx1.freebsd.org (Postfix) with ESMTP id 1B12F11C9 for ; Thu, 2 Jun 2016 03:10:10 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id 6F0731754A; Thu, 2 Jun 2016 03:10:09 +0000 (UTC) Date: Thu, 2 Jun 2016 03:10:09 +0000 To: freebsd-net@freebsd.org From: "sepherosa_gmail.com (Sepherosa Ziehau)" Reply-to: D6689+325+6c89ed8b7a9bc66d@reviews.freebsd.org Subject: [Differential] D6689: tcp/lro: Implement hash table for LRO entries. Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , Thread-Topic: D6689: tcp/lro: Implement hash table for LRO entries. X-Herald-Rules: <64> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: Precedence: bulk Thread-Index: ZGRkYTdkZDNmZDVlODIxOWE3MGU3NDg3NmVj MIME-Version: 1.0 Content-Type: text/x-patch; charset=utf-8; name="D6689.17214.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D6689.17214.patch" X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.22 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Jun 2016 03:10:10 -0000 ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0L3RjcF9scm8uaCBiL3N5cy9uZXRpbmV0L3RjcF9scm8u aAotLS0gYS9zeXMvbmV0aW5ldC90Y3BfbHJvLmgKKysrIGIvc3lzL25ldGluZXQvdGNwX2xyby5o CkBAIC00MCw2ICs0MCw3IEBACiAKIHN0cnVjdCBscm9fZW50cnkgewogCUxJU1RfRU5UUlkobHJv X2VudHJ5KQluZXh0OworCUxJU1RfRU5UUlkobHJvX2VudHJ5KQloYXNoX25leHQ7CiAJc3RydWN0 IG1idWYJCSptX2hlYWQ7CiAJc3RydWN0IG1idWYJCSptX3RhaWw7CiAJdW5pb24gewpAQCAtOTUs NiArOTYsOCBAQAogCXVuc2lnbmVkIHNob3J0CWxyb19hY2tjbnRfbGltOwkJLyogbWF4ICMgb2Yg YWdncmVnYXRlZCBBQ0tzICovCiAJdW5zaWduZWQgCWxyb19sZW5ndGhfbGltOwkJLyogbWF4IGxl biBvZiBhZ2dyZWdhdGVkIGRhdGEgKi8KIAorCXVfbG9uZwkJbHJvX2hhc2hzejsKKwlzdHJ1Y3Qg bHJvX2hlYWQJKmxyb19oYXNoOwogCXN0cnVjdCBscm9faGVhZAlscm9fYWN0aXZlOwogCXN0cnVj dCBscm9faGVhZAlscm9fZnJlZTsKIH07CmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldC90Y3BfbHJv LmMgYi9zeXMvbmV0aW5ldC90Y3BfbHJvLmMKLS0tIGEvc3lzL25ldGluZXQvdGNwX2xyby5jCisr KyBiL3N5cy9uZXRpbmV0L3RjcF9scm8uYwpAQCAtNzAsMTcgKzcwLDIwIEBACiBzdGF0aWMgdm9p ZAl0Y3BfbHJvX3J4X2RvbmUoc3RydWN0IGxyb19jdHJsICpsYyk7CiAKIHN0YXRpYyBfX2lubGlu ZSB2b2lkCi10Y3BfbHJvX2FjdGl2ZV9pbnNlcnQoc3RydWN0IGxyb19jdHJsICpsYywgc3RydWN0 IGxyb19lbnRyeSAqbGUpCit0Y3BfbHJvX2FjdGl2ZV9pbnNlcnQoc3RydWN0IGxyb19jdHJsICps Yywgc3RydWN0IGxyb19oZWFkICpidWNrZXQsCisgICAgc3RydWN0IGxyb19lbnRyeSAqbGUpCiB7 CiAKIAlMSVNUX0lOU0VSVF9IRUFEKCZsYy0+bHJvX2FjdGl2ZSwgbGUsIG5leHQpOworCUxJU1Rf SU5TRVJUX0hFQUQoYnVja2V0LCBsZSwgaGFzaF9uZXh0KTsKIH0KIAogc3RhdGljIF9faW5saW5l IHZvaWQKIHRjcF9scm9fYWN0aXZlX3JlbW92ZShzdHJ1Y3QgbHJvX2VudHJ5ICpsZSkKIHsKIAot CUxJU1RfUkVNT1ZFKGxlLCBuZXh0KTsKKwlMSVNUX1JFTU9WRShsZSwgbmV4dCk7CQkvKiBhY3Rp dmUgbGlzdCAqLworCUxJU1RfUkVNT1ZFKGxlLCBoYXNoX25leHQpOwkvKiBoYXNoIGJ1Y2tldCAq LwogfQogCiBpbnQKQEAgLTk1LDcgKzk4LDcgQEAKIHsKIAlzdHJ1Y3QgbHJvX2VudHJ5ICpsZTsK IAlzaXplX3Qgc2l6ZTsKLQl1bnNpZ25lZCBpOworCXVuc2lnbmVkIGksIGVsZW1lbnRzOwogCiAJ bGMtPmxyb19iYWRfY3N1bSA9IDA7CiAJbGMtPmxyb19xdWV1ZWQgPSAwOwpAQCAtMTEwLDYgKzEx MywxOCBAQAogCUxJU1RfSU5JVCgmbGMtPmxyb19mcmVlKTsKIAlMSVNUX0lOSVQoJmxjLT5scm9f YWN0aXZlKTsKIAorCS8qIGNyZWF0ZSBoYXNoIHRhYmxlIHRvIGFjY2VsZXJhdGUgZW50cnkgbG9v a3VwICovCisJaWYgKGxyb19lbnRyaWVzID4gbHJvX21idWZzKQorCQllbGVtZW50cyA9IGxyb19l bnRyaWVzOworCWVsc2UKKwkJZWxlbWVudHMgPSBscm9fbWJ1ZnM7CisJbGMtPmxyb19oYXNoID0g cGhhc2hpbml0X2ZsYWdzKGVsZW1lbnRzLCBNX0xSTywgJmxjLT5scm9faGFzaHN6LAorCSAgICBI QVNIX05PV0FJVCk7CisJaWYgKGxjLT5scm9faGFzaCA9PSBOVUxMKSB7CisJCW1lbXNldChsYywg MCwgc2l6ZW9mKCpsYykpOworCQlyZXR1cm4gKEVOT01FTSk7CisJfQorCiAJLyogY29tcHV0ZSBz aXplIHRvIGFsbG9jYXRlICovCiAJc2l6ZSA9IChscm9fbWJ1ZnMgKiBzaXplb2Yoc3RydWN0IGxy b19tYnVmX3NvcnQpKSArCiAJICAgIChscm9fZW50cmllcyAqIHNpemVvZigqbGUpKTsKQEAgLTE0 Nyw2ICsxNjIsMTMgQEAKIAkJbV9mcmVlbShsZS0+bV9oZWFkKTsKIAl9CiAKKwkvKiBmcmVlIGhh c2ggdGFibGUgKi8KKwlpZiAobGMtPmxyb19oYXNoICE9IE5VTEwpIHsKKwkJZnJlZShsYy0+bHJv X2hhc2gsIE1fTFJPKTsKKwkJbGMtPmxyb19oYXNoID0gTlVMTDsKKwl9CisJbGMtPmxyb19oYXNo c3ogPSAwOworCiAJLyogZnJlZSBtYnVmIGFycmF5LCBpZiBhbnkgKi8KIAlmb3IgKHggPSAwOyB4 ICE9IGxjLT5scm9fbWJ1Zl9jb3VudDsgeCsrKQogCQltX2ZyZWVtKGxjLT5scm9fbWJ1Zl9kYXRh W3hdLm1iKTsKQEAgLTU4MSw2ICs2MDMsOCBAQAogCXRjcF9zZXEgc2VxOwogCWludCBlcnJvciwg aXBfbGVuLCBsOwogCXVpbnQxNl90IGVoX3R5cGUsIHRjcF9kYXRhX2xlbjsKKwlzdHJ1Y3QgbHJv X2hlYWQgKmJ1Y2tldDsKKwl1aW50MzJfdCBoYXNoOwogCiAJLyogV2UgZXhwZWN0IGEgY29udGln dW91cyBoZWFkZXIgW2VoLCBpcCwgdGNwXS4gKi8KIApAQCAtNjczLDggKzY5NywzNyBAQAogCiAJ c2VxID0gbnRvaGwodGgtPnRoX3NlcSk7CiAKKwlpZiAoTV9IQVNIVFlQRV9JU0hBU0gobSkpIHsK KwkJaGFzaCA9IG0tPm1fcGt0aGRyLmZsb3dpZDsKKwl9IGVsc2UgeworCQlzd2l0Y2ggKGVoX3R5 cGUpIHsKKyNpZmRlZiBJTkVUCisJCWNhc2UgRVRIRVJUWVBFX0lQOgorCQkJaGFzaCA9IGlwNC0+ aXBfc3JjLnNfYWRkciArIGlwNC0+aXBfZHN0LnNfYWRkcjsKKwkJCWJyZWFrOworI2VuZGlmCisj aWZkZWYgSU5FVDYKKwkJY2FzZSBFVEhFUlRZUEVfSVBWNjoKKwkJCWhhc2ggPSBpcDYtPmlwNl9z cmMuczZfYWRkcjMyWzBdICsKKwkJCSAgICBpcDYtPmlwNl9kc3QuczZfYWRkcjMyWzBdOworCQkJ aGFzaCArPSBpcDYtPmlwNl9zcmMuczZfYWRkcjMyWzFdICsKKwkJCSAgICBpcDYtPmlwNl9kc3Qu czZfYWRkcjMyWzFdOworCQkJaGFzaCArPSBpcDYtPmlwNl9zcmMuczZfYWRkcjMyWzJdICsKKwkJ CSAgICBpcDYtPmlwNl9kc3QuczZfYWRkcjMyWzJdOworCQkJaGFzaCArPSBpcDYtPmlwNl9zcmMu czZfYWRkcjMyWzNdICsKKwkJCSAgICBpcDYtPmlwNl9kc3QuczZfYWRkcjMyWzNdOworCQkJYnJl YWs7CisjZW5kaWYKKwkJZGVmYXVsdDoKKwkJCWhhc2ggPSAwOworCQkJYnJlYWs7CisJCX0KKwkJ aGFzaCArPSB0aC0+dGhfc3BvcnQgKyB0aC0+dGhfZHBvcnQ7CisJfQorCWJ1Y2tldCA9ICZsYy0+ bHJvX2hhc2hbaGFzaCAlIGxjLT5scm9faGFzaHN6XTsKKwogCS8qIFRyeSB0byBmaW5kIGEgbWF0 Y2hpbmcgcHJldmlvdXMgc2VnbWVudC4gKi8KLQlMSVNUX0ZPUkVBQ0gobGUsICZsYy0+bHJvX2Fj dGl2ZSwgbmV4dCkgeworCUxJU1RfRk9SRUFDSChsZSwgYnVja2V0LCBoYXNoX25leHQpIHsKIAkJ aWYgKGxlLT5laF90eXBlICE9IGVoX3R5cGUpCiAJCQljb250aW51ZTsKIAkJaWYgKGxlLT5zb3Vy Y2VfcG9ydCAhPSB0aC0+dGhfc3BvcnQgfHwKQEAgLTc4Miw3ICs4MzUsNyBAQAogCS8qIFN0YXJ0 IGEgbmV3IHNlZ21lbnQgY2hhaW4uICovCiAJbGUgPSBMSVNUX0ZJUlNUKCZsYy0+bHJvX2ZyZWUp OwogCUxJU1RfUkVNT1ZFKGxlLCBuZXh0KTsKLQl0Y3BfbHJvX2FjdGl2ZV9pbnNlcnQobGMsIGxl KTsKKwl0Y3BfbHJvX2FjdGl2ZV9pbnNlcnQobGMsIGJ1Y2tldCwgbGUpOwogCWdldG1pY3JvdGlt ZSgmbGUtPm10aW1lKTsKIAogCS8qIFN0YXJ0IGZpbGxpbmcgaW4gZGV0YWlscy4gKi8KCg==