From owner-freebsd-net@freebsd.org Tue Feb 2 10:27:11 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 46F4EA986C5 for ; Tue, 2 Feb 2016 10:27:11 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from phabric-backend.rbsd.freebsd.org (unknown [IPv6:2607:fc50:2000:101::1bb:73]) by mx1.freebsd.org (Postfix) with ESMTP id 1F8D414CE for ; Tue, 2 Feb 2016 10:27:11 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.rbsd.freebsd.org (Postfix, from userid 1346) id 1B9CB107B30; Tue, 2 Feb 2016 10:27:11 +0000 (UTC) Date: Tue, 2 Feb 2016 10:27:11 +0000 To: freebsd-net@freebsd.org From: "sepherosa_gmail.com (Sepherosa Ziehau)" Reply-to: D5167+325+acc9bcb5dbcc28f2@reviews.freebsd.org Subject: [Differential] [Request, 21 lines] D5167: hyperv/hn: Move LRO flush to the channel processing rollup 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: D5167: hyperv/hn: Move LRO flush to the channel processing rollup X-Herald-Rules: none 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: N2NlNTE2YjI3MTBjYjEzNmM4OWIyM2FkMjc1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_bcbac81c98c0f7d73a739f38120bf5b5" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Feb 2016 10:27:11 -0000 --b1_bcbac81c98c0f7d73a739f38120bf5b5 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit sepherosa_gmail.com created this revision. sepherosa_gmail.com added reviewers: network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com. sepherosa_gmail.com added a subscriber: freebsd-net-list. REVISION SUMMARY This significantly increases LRO aggregation ratio when there are large amount of connections (improves reception performance a lot). REVISION DETAIL https://reviews.freebsd.org/D5167 AFFECTED FILES sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c CHANGE DETAILS diff --git a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c --- a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c +++ b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c @@ -764,6 +764,15 @@ netvsc_channel_rollup(struct hv_device *device_ctx) { struct hn_softc *sc = device_get_softc(device_ctx->device); +#if defined(INET) || defined(INET6) + struct lro_ctrl *lro = &sc->hn_lro; + struct lro_entry *queued; + + while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) { + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } +#endif if (!sc->hn_txeof) return; @@ -1338,18 +1347,8 @@ } void -netvsc_recv_rollup(struct hv_device *device_ctx) +netvsc_recv_rollup(struct hv_device *device_ctx __unused) { -#if defined(INET) || defined(INET6) - hn_softc_t *sc = device_get_softc(device_ctx->device); - struct lro_ctrl *lro = &sc->hn_lro; - struct lro_entry *queued; - - while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) { - SLIST_REMOVE_HEAD(&lro->lro_active, next); - tcp_lro_flush(lro, queued); - } -#endif } /* EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com Cc: freebsd-net-list --b1_bcbac81c98c0f7d73a739f38120bf5b5 Content-Type: text/x-patch; charset=utf-8; name="D5167.12948.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5167.12948.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2Qu YyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2QuYwotLS0gYS9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNkLmMKKysrIGIvc3lzL2Rl di9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jCkBAIC03NjQsNiArNzY0LDE1 IEBACiBuZXR2c2NfY2hhbm5lbF9yb2xsdXAoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlX2N0eCkK IHsKIAlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXZpY2VfY3R4LT5k ZXZpY2UpOworI2lmIGRlZmluZWQoSU5FVCkgfHwgZGVmaW5lZChJTkVUNikKKwlzdHJ1Y3QgbHJv X2N0cmwgKmxybyA9ICZzYy0+aG5fbHJvOworCXN0cnVjdCBscm9fZW50cnkgKnF1ZXVlZDsKKwor CXdoaWxlICgocXVldWVkID0gU0xJU1RfRklSU1QoJmxyby0+bHJvX2FjdGl2ZSkpICE9IE5VTEwp IHsKKwkJU0xJU1RfUkVNT1ZFX0hFQUQoJmxyby0+bHJvX2FjdGl2ZSwgbmV4dCk7CisJCXRjcF9s cm9fZmx1c2gobHJvLCBxdWV1ZWQpOworCX0KKyNlbmRpZgogCiAJaWYgKCFzYy0+aG5fdHhlb2Yp CiAJCXJldHVybjsKQEAgLTEzMzgsMTggKzEzNDcsOCBAQAogfQogCiB2b2lkCi1uZXR2c2NfcmVj dl9yb2xsdXAoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlX2N0eCkKK25ldHZzY19yZWN2X3JvbGx1 cChzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2VfY3R4IF9fdW51c2VkKQogewotI2lmIGRlZmluZWQo SU5FVCkgfHwgZGVmaW5lZChJTkVUNikKLQlobl9zb2Z0Y190ICpzYyA9IGRldmljZV9nZXRfc29m dGMoZGV2aWNlX2N0eC0+ZGV2aWNlKTsKLQlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZzYy0+aG5f bHJvOwotCXN0cnVjdCBscm9fZW50cnkgKnF1ZXVlZDsKLQotCXdoaWxlICgocXVldWVkID0gU0xJ U1RfRklSU1QoJmxyby0+bHJvX2FjdGl2ZSkpICE9IE5VTEwpIHsKLQkJU0xJU1RfUkVNT1ZFX0hF QUQoJmxyby0+bHJvX2FjdGl2ZSwgbmV4dCk7Ci0JCXRjcF9scm9fZmx1c2gobHJvLCBxdWV1ZWQp OwotCX0KLSNlbmRpZgogfQogCiAvKgoK --b1_bcbac81c98c0f7d73a739f38120bf5b5--