From owner-freebsd-virtualization@freebsd.org Wed Feb 3 16:02:59 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 7365DA9AAF0 for ; Wed, 3 Feb 2016 16:02:59 +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 5E5C3120A for ; Wed, 3 Feb 2016 16:02:59 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.rbsd.freebsd.org (Postfix, from userid 1346) id 5A4CA106608; Wed, 3 Feb 2016 16:02:59 +0000 (UTC) Date: Wed, 3 Feb 2016 16:02:59 +0000 To: freebsd-virtualization@freebsd.org From: "sepherosa_gmail.com (Sepherosa Ziehau)" Reply-to: D5175+333+519ccacf1c2a3a95@reviews.freebsd.org Subject: [Differential] [Request, 19 lines] D5175: hyperv/hn: Add an option to always do transmission scheduling 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: 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 Thread-Index: OGFmNjgzYWFmZmVhMjQ0MTIwYzQ1OWJjZDg2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_c3dca101931ab18808d7fff25e296480" 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: Wed, 03 Feb 2016 16:02:59 -0000 --b1_c3dca101931ab18808d7fff25e296480 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 subscribers: freebsd-net-list, freebsd-virtualization-list. REVISION SUMMARY It is off by default. This eases more experiment on hn(4). REVISION DETAIL https://reviews.freebsd.org/D5175 AFFECTED FILES sys/dev/hyperv/netvsc/hv_net_vsc.h 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 @@ -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/sys/dev/hyperv/netvsc/hv_net_vsc.h b/sys/dev/hyperv/netvsc/hv_net_vsc.h --- a/sys/dev/hyperv/netvsc/hv_net_vsc.h +++ b/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, network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com Cc: freebsd-virtualization-list, freebsd-net-list --b1_c3dca101931ab18808d7fff25e296480 Content-Type: text/x-patch; charset=utf-8; name="D5175.12968.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5175.12968.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2Qu YyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2QuYwotLS0gYS9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNkLmMKKysrIGIvc3lzL2Rl di9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jCkBAIC01MzQsNiArNTM0LDEw IEBACiAJU1lTQ1RMX0FERF9JTlQoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJkaXJlY3RfdHhfc2l6 ZSIsCiAJICAgIENUTEZMQUdfUlcsICZzYy0+aG5fZGlyZWN0X3R4X3NpemUsIDAsCiAJICAgICJT aXplIG9mIHRoZSBwYWNrZXQgZm9yIGRpcmVjdCB0cmFuc21pc3Npb24iKTsKKwlTWVNDVExfQURE X0lOVChjdHgsIGNoaWxkLCBPSURfQVVUTywgInNjaGVkX3R4IiwKKwkgICAgQ1RMRkxBR19SVywg JnNjLT5obl9zY2hlZF90eCwgMCwKKwkgICAgIkFsd2F5cyBzY2hlZHVsZSB0cmFuc21pc3Npb24g IgorCSAgICAiaW5zdGVhZCBvZiBkb2luZyBkaXJlY3QgdHJhbnNtaXNzaW9uIik7CiAKIAlpZiAo dW5pdCA9PSAwKSB7CiAJCXN0cnVjdCBzeXNjdGxfY3R4X2xpc3QgKmRjX2N0eDsKQEAgLTE2MDIs MjYgKzE2MDYsMzEgQEAKIHN0YXRpYyB2b2lkCiBobl9zdGFydChzdHJ1Y3QgaWZuZXQgKmlmcCkK IHsKLQlobl9zb2Z0Y190ICpzYzsKKwlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gaWZwLT5pZl9zb2Z0 YzsKKworCWlmIChzYy0+aG5fc2NoZWRfdHgpCisJCWdvdG8gZG9fc2NoZWQ7CiAKLQlzYyA9IGlm cC0+aWZfc29mdGM7CiAJaWYgKE5WX1RSWUxPQ0soc2MpKSB7CiAJCWludCBzY2hlZDsKIAogCQlz Y2hlZCA9IGhuX3N0YXJ0X2xvY2tlZChpZnAsIHNjLT5obl9kaXJlY3RfdHhfc2l6ZSk7CiAJCU5W X1VOTE9DSyhzYyk7CiAJCWlmICghc2NoZWQpCiAJCQlyZXR1cm47CiAJfQorZG9fc2NoZWQ6CiAJ dGFza3F1ZXVlX2VucXVldWVfZmFzdChzYy0+aG5fdHhfdGFza3EsICZzYy0+aG5fc3RhcnRfdGFz ayk7CiB9CiAKIHN0YXRpYyB2b2lkCiBobl9zdGFydF90eGVvZihzdHJ1Y3QgaWZuZXQgKmlmcCkK IHsKLQlobl9zb2Z0Y190ICpzYzsKKwlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gaWZwLT5pZl9zb2Z0 YzsKKworCWlmIChzYy0+aG5fc2NoZWRfdHgpCisJCWdvdG8gZG9fc2NoZWQ7CiAKLQlzYyA9IGlm cC0+aWZfc29mdGM7CiAJaWYgKE5WX1RSWUxPQ0soc2MpKSB7CiAJCWludCBzY2hlZDsKIApAQCAt MTYzMyw2ICsxNjQyLDcgQEAKIAkJCSAgICAmc2MtPmhuX3N0YXJ0X3Rhc2spOwogCQl9CiAJfSBl bHNlIHsKK2RvX3NjaGVkOgogCQkvKgogCQkgKiBSZWxlYXNlIHRoZSBPQUNUSVZFIGVhcmxpZXIs IHdpdGggdGhlIGhvcGUsIHRoYXQKIAkJICogb3RoZXJzIGNvdWxkIGNhdGNoIHVwLiAgVGhlIHRh c2sgd2lsbCBjbGVhciB0aGUKZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9u ZXRfdnNjLmggYi9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCi0tLSBhL3N5cy9k ZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmgKKysrIGIvc3lzL2Rldi9oeXBlcnYvbmV0dnNj L2h2X25ldF92c2MuaApAQCAtMTAyMyw2ICsxMDIzLDcgQEAKIAlpbnQJCWhuX3R4ZGVzY19hdmFp bDsKIAlpbnQJCWhuX3R4ZW9mOwogCisJaW50CQlobl9zY2hlZF90eDsKIAlpbnQJCWhuX2RpcmVj dF90eF9zaXplOwogCXN0cnVjdCB0YXNrcXVldWUgKmhuX3R4X3Rhc2txOwogCXN0cnVjdCB0YXNr CWhuX3N0YXJ0X3Rhc2s7Cgo= --b1_c3dca101931ab18808d7fff25e296480--