From owner-freebsd-virtualization@freebsd.org Fri Feb 5 05:51:23 2016 Return-Path: Delivered-To: freebsd-virtualization@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 649DCA9A454 for ; Fri, 5 Feb 2016 05:51:23 +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 4F1071EC5 for ; Fri, 5 Feb 2016 05:51:23 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.rbsd.freebsd.org (Postfix, from userid 1346) id 4E6E1107296; Fri, 5 Feb 2016 05:51:23 +0000 (UTC) Date: Fri, 5 Feb 2016 05:51:23 +0000 To: freebsd-virtualization@freebsd.org From: Phabricator Reply-to: D5175+333+519ccacf1c2a3a95@reviews.freebsd.org Subject: [Differential] [Closed] D5175: hyperv/hn: Add an option to always do transmission scheduling Message-ID: <68411d8e22aef06adf3480219cafe460@localhost.localdomain> 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: D5175: hyperv/hn: Add an option to always do transmission scheduling 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: X-Phabricator-Cc: Precedence: bulk In-Reply-To: References: Thread-Index: OGFmNjgzYWFmZmVhMjQ0MTIwYzQ1OWJjZDg2IFa0OFs= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_68411d8e22aef06adf3480219cafe460" X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.20 List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Feb 2016 05:51:23 -0000 --b1_68411d8e22aef06adf3480219cafe460 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS295306: hyperv/hn: Add an option to always do transmission scheduling (authored by sephe). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D5175?vs=12968&id=13040#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5175?vs=12968&id=13040 REVISION DETAIL https://reviews.freebsd.org/D5175 AFFECTED FILES head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c CHANGE DETAILS diff --git a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c --- a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c +++ b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c @@ -534,6 +534,10 @@ SYSCTL_ADD_INT(ctx, child, OID_AUTO, "direct_tx_size", CTLFLAG_RW, &sc->hn_direct_tx_size, 0, "Size of the packet for direct transmission"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "sched_tx", + CTLFLAG_RW, &sc->hn_sched_tx, 0, + "Always schedule transmission " + "instead of doing direct transmission"); if (unit == 0) { struct sysctl_ctx_list *dc_ctx; @@ -1602,26 +1606,31 @@ static void hn_start(struct ifnet *ifp) { - hn_softc_t *sc; + struct hn_softc *sc = ifp->if_softc; + + if (sc->hn_sched_tx) + goto do_sched; - sc = ifp->if_softc; if (NV_TRYLOCK(sc)) { int sched; sched = hn_start_locked(ifp, sc->hn_direct_tx_size); NV_UNLOCK(sc); if (!sched) return; } +do_sched: taskqueue_enqueue_fast(sc->hn_tx_taskq, &sc->hn_start_task); } static void hn_start_txeof(struct ifnet *ifp) { - hn_softc_t *sc; + struct hn_softc *sc = ifp->if_softc; + + if (sc->hn_sched_tx) + goto do_sched; - sc = ifp->if_softc; if (NV_TRYLOCK(sc)) { int sched; @@ -1633,6 +1642,7 @@ &sc->hn_start_task); } } else { +do_sched: /* * Release the OACTIVE earlier, with the hope, that * others could catch up. The task will clear the diff --git a/head/sys/dev/hyperv/netvsc/hv_net_vsc.h b/head/sys/dev/hyperv/netvsc/hv_net_vsc.h --- a/head/sys/dev/hyperv/netvsc/hv_net_vsc.h +++ b/head/sys/dev/hyperv/netvsc/hv_net_vsc.h @@ -1023,6 +1023,7 @@ int hn_txdesc_avail; int hn_txeof; + int hn_sched_tx; int hn_direct_tx_size; struct taskqueue *hn_tx_taskq; struct task hn_start_task; EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, delphij, royger, decui_microsoft.com, howard0su_gmail.com, adrian, network, honzhan_microsoft.com Cc: freebsd-virtualization-list, freebsd-net-list --b1_68411d8e22aef06adf3480219cafe460 Content-Type: text/x-patch; charset=utf-8; name="D5175.13040.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5175.13040.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKQEAgLTUzNCw2ICs1MzQsMTAgQEAKIAlTWVNDVExfQUREX0lOVChjdHgsIGNoaWxkLCBPSURf QVVUTywgImRpcmVjdF90eF9zaXplIiwKIAkgICAgQ1RMRkxBR19SVywgJnNjLT5obl9kaXJlY3Rf dHhfc2l6ZSwgMCwKIAkgICAgIlNpemUgb2YgdGhlIHBhY2tldCBmb3IgZGlyZWN0IHRyYW5zbWlz c2lvbiIpOworCVNZU0NUTF9BRERfSU5UKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAic2NoZWRfdHgi LAorCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX3NjaGVkX3R4LCAwLAorCSAgICAiQWx3YXlzIHNj aGVkdWxlIHRyYW5zbWlzc2lvbiAiCisJICAgICJpbnN0ZWFkIG9mIGRvaW5nIGRpcmVjdCB0cmFu c21pc3Npb24iKTsKIAogCWlmICh1bml0ID09IDApIHsKIAkJc3RydWN0IHN5c2N0bF9jdHhfbGlz dCAqZGNfY3R4OwpAQCAtMTYwMiwyNiArMTYwNiwzMSBAQAogc3RhdGljIHZvaWQKIGhuX3N0YXJ0 KHN0cnVjdCBpZm5ldCAqaWZwKQogewotCWhuX3NvZnRjX3QgKnNjOworCXN0cnVjdCBobl9zb2Z0 YyAqc2MgPSBpZnAtPmlmX3NvZnRjOworCisJaWYgKHNjLT5obl9zY2hlZF90eCkKKwkJZ290byBk b19zY2hlZDsKIAotCXNjID0gaWZwLT5pZl9zb2Z0YzsKIAlpZiAoTlZfVFJZTE9DSyhzYykpIHsK IAkJaW50IHNjaGVkOwogCiAJCXNjaGVkID0gaG5fc3RhcnRfbG9ja2VkKGlmcCwgc2MtPmhuX2Rp cmVjdF90eF9zaXplKTsKIAkJTlZfVU5MT0NLKHNjKTsKIAkJaWYgKCFzY2hlZCkKIAkJCXJldHVy bjsKIAl9Citkb19zY2hlZDoKIAl0YXNrcXVldWVfZW5xdWV1ZV9mYXN0KHNjLT5obl90eF90YXNr cSwgJnNjLT5obl9zdGFydF90YXNrKTsKIH0KIAogc3RhdGljIHZvaWQKIGhuX3N0YXJ0X3R4ZW9m KHN0cnVjdCBpZm5ldCAqaWZwKQogewotCWhuX3NvZnRjX3QgKnNjOworCXN0cnVjdCBobl9zb2Z0 YyAqc2MgPSBpZnAtPmlmX3NvZnRjOworCisJaWYgKHNjLT5obl9zY2hlZF90eCkKKwkJZ290byBk b19zY2hlZDsKIAotCXNjID0gaWZwLT5pZl9zb2Z0YzsKIAlpZiAoTlZfVFJZTE9DSyhzYykpIHsK IAkJaW50IHNjaGVkOwogCkBAIC0xNjMzLDYgKzE2NDIsNyBAQAogCQkJICAgICZzYy0+aG5fc3Rh cnRfdGFzayk7CiAJCX0KIAl9IGVsc2UgeworZG9fc2NoZWQ6CiAJCS8qCiAJCSAqIFJlbGVhc2Ug dGhlIE9BQ1RJVkUgZWFybGllciwgd2l0aCB0aGUgaG9wZSwgdGhhdAogCQkgKiBvdGhlcnMgY291 bGQgY2F0Y2ggdXAuICBUaGUgdGFzayB3aWxsIGNsZWFyIHRoZQpkaWZmIC0tZ2l0IGEvaGVhZC9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9u ZXR2c2MvaHZfbmV0X3ZzYy5oCi0tLSBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25l dF92c2MuaAorKysgYi9oZWFkL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmgKQEAg LTEwMjMsNiArMTAyMyw3IEBACiAJaW50CQlobl90eGRlc2NfYXZhaWw7CiAJaW50CQlobl90eGVv ZjsKIAorCWludAkJaG5fc2NoZWRfdHg7CiAJaW50CQlobl9kaXJlY3RfdHhfc2l6ZTsKIAlzdHJ1 Y3QgdGFza3F1ZXVlICpobl90eF90YXNrcTsKIAlzdHJ1Y3QgdGFzawlobl9zdGFydF90YXNrOwoK --b1_68411d8e22aef06adf3480219cafe460--