Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Feb 2016 05:51:23 +0000
From:      Phabricator <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] [Closed] D5175: hyperv/hn: Add an option to always do transmission scheduling
Message-ID:  <eb1832b700c57f22d641be7e0f253c8a@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-aawldvhjtuqx45nsi7bx-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-aawldvhjtuqx45nsi7bx-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_eb1832b700c57f22d641be7e0f253c8a
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_eb1832b700c57f22d641be7e0f253c8a
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_eb1832b700c57f22d641be7e0f253c8a--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?eb1832b700c57f22d641be7e0f253c8a>