From owner-freebsd-virtualization@freebsd.org Thu Feb 18 06:55:32 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 66572AAB90E for ; Thu, 18 Feb 2016 06:55:32 +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 514E39E5 for ; Thu, 18 Feb 2016 06:55:32 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.rbsd.freebsd.org (Postfix, from userid 1346) id 4FE833320472; Thu, 18 Feb 2016 06:55:32 +0000 (UTC) Date: Thu, 18 Feb 2016 06:55:32 +0000 To: freebsd-virtualization@freebsd.org From: Phabricator Reply-to: D5272+333+f432600ef7536763@reviews.freebsd.org Subject: [Differential] [Closed] D5272: hyperv/hn: Add option to allow sharing TX taskq between hn instances Message-ID: <71d46e79a420fe2ef26c7cd98275dd36@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: D5272: hyperv/hn: Add option to allow sharing TX taskq between hn instances 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: ZDMwMGVlOTEyMjMxYzQ3NmRmOTRjNmZlNjNhIFbFauQ= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_71d46e79a420fe2ef26c7cd98275dd36" 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: Thu, 18 Feb 2016 06:55:32 -0000 --b1_71d46e79a420fe2ef26c7cd98275dd36 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS295741: hyperv/hn: Add option to allow sharing TX taskq between hn instances (authored by sephe). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D5272?vs=13283&id=13399#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5272?vs=13283&id=13399 REVISION DETAIL https://reviews.freebsd.org/D5272 AFFECTED FILES 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 @@ -238,6 +238,11 @@ #endif #endif +static int hn_share_tx_taskq = 0; +TUNABLE_INT("hw.hn.share_tx_taskq", &hn_share_tx_taskq); + +static struct taskqueue *hn_tx_taskq; + /* * Forward declarations */ @@ -353,10 +358,14 @@ if (hn_trust_hostip) sc->hn_trust_hcsum |= HN_TRUST_HCSUM_IP; - sc->hn_tx_taskq = taskqueue_create_fast("hn_tx", M_WAITOK, - taskqueue_thread_enqueue, &sc->hn_tx_taskq); - taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, "%s tx", - device_get_nameunit(dev)); + if (hn_tx_taskq == NULL) { + sc->hn_tx_taskq = taskqueue_create_fast("hn_tx", M_WAITOK, + taskqueue_thread_enqueue, &sc->hn_tx_taskq); + taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, "%s tx", + device_get_nameunit(dev)); + } else { + sc->hn_tx_taskq = hn_tx_taskq; + } TASK_INIT(&sc->hn_start_task, 0, hn_start_taskfunc, sc); TASK_INIT(&sc->hn_txeof_task, 0, hn_txeof_taskfunc, sc); @@ -602,7 +611,8 @@ taskqueue_drain(sc->hn_tx_taskq, &sc->hn_start_task); taskqueue_drain(sc->hn_tx_taskq, &sc->hn_txeof_task); - taskqueue_free(sc->hn_tx_taskq); + if (sc->hn_tx_taskq != hn_tx_taskq) + taskqueue_free(sc->hn_tx_taskq); ifmedia_removeall(&sc->hn_media); #if defined(INET) || defined(INET6) @@ -2039,6 +2049,28 @@ NV_UNLOCK(sc); } +static void +hn_tx_taskq_create(void *arg __unused) +{ + if (!hn_share_tx_taskq) + return; + + hn_tx_taskq = taskqueue_create_fast("hn_tx", M_WAITOK, + taskqueue_thread_enqueue, &hn_tx_taskq); + taskqueue_start_threads(&hn_tx_taskq, 1, PI_NET, "hn tx"); +} +SYSINIT(hn_txtq_create, SI_SUB_DRIVERS, SI_ORDER_FIRST, + hn_tx_taskq_create, NULL); + +static void +hn_tx_taskq_destroy(void *arg __unused) +{ + if (hn_tx_taskq != NULL) + taskqueue_free(hn_tx_taskq); +} +SYSUNINIT(hn_txtq_destroy, SI_SUB_DRIVERS, SI_ORDER_FIRST, + hn_tx_taskq_destroy, NULL); + static device_method_t netvsc_methods[] = { /* Device interface */ DEVMETHOD(device_probe, netvsc_probe), EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, adrian, network Cc: freebsd-virtualization-list, freebsd-net-list --b1_71d46e79a420fe2ef26c7cd98275dd36 Content-Type: text/x-patch; charset=utf-8; name="D5272.13399.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5272.13399.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKQEAgLTIzOCw2ICsyMzgsMTEgQEAKICNlbmRpZgogI2VuZGlmCiAKK3N0YXRpYyBpbnQgaG5f c2hhcmVfdHhfdGFza3EgPSAwOworVFVOQUJMRV9JTlQoImh3LmhuLnNoYXJlX3R4X3Rhc2txIiwg JmhuX3NoYXJlX3R4X3Rhc2txKTsKKworc3RhdGljIHN0cnVjdCB0YXNrcXVldWUJKmhuX3R4X3Rh c2txOworCiAvKgogICogRm9yd2FyZCBkZWNsYXJhdGlvbnMKICAqLwpAQCAtMzUzLDEwICszNTgs MTQgQEAKIAlpZiAoaG5fdHJ1c3RfaG9zdGlwKQogCQlzYy0+aG5fdHJ1c3RfaGNzdW0gfD0gSE5f VFJVU1RfSENTVU1fSVA7CiAKLQlzYy0+aG5fdHhfdGFza3EgPSB0YXNrcXVldWVfY3JlYXRlX2Zh c3QoImhuX3R4IiwgTV9XQUlUT0ssCi0JICAgIHRhc2txdWV1ZV90aHJlYWRfZW5xdWV1ZSwgJnNj LT5obl90eF90YXNrcSk7Ci0JdGFza3F1ZXVlX3N0YXJ0X3RocmVhZHMoJnNjLT5obl90eF90YXNr cSwgMSwgUElfTkVULCAiJXMgdHgiLAotCSAgICBkZXZpY2VfZ2V0X25hbWV1bml0KGRldikpOwor CWlmIChobl90eF90YXNrcSA9PSBOVUxMKSB7CisJCXNjLT5obl90eF90YXNrcSA9IHRhc2txdWV1 ZV9jcmVhdGVfZmFzdCgiaG5fdHgiLCBNX1dBSVRPSywKKwkJICAgIHRhc2txdWV1ZV90aHJlYWRf ZW5xdWV1ZSwgJnNjLT5obl90eF90YXNrcSk7CisJCXRhc2txdWV1ZV9zdGFydF90aHJlYWRzKCZz Yy0+aG5fdHhfdGFza3EsIDEsIFBJX05FVCwgIiVzIHR4IiwKKwkJICAgIGRldmljZV9nZXRfbmFt ZXVuaXQoZGV2KSk7CisJfSBlbHNlIHsKKwkJc2MtPmhuX3R4X3Rhc2txID0gaG5fdHhfdGFza3E7 CisJfQogCVRBU0tfSU5JVCgmc2MtPmhuX3N0YXJ0X3Rhc2ssIDAsIGhuX3N0YXJ0X3Rhc2tmdW5j LCBzYyk7CiAJVEFTS19JTklUKCZzYy0+aG5fdHhlb2ZfdGFzaywgMCwgaG5fdHhlb2ZfdGFza2Z1 bmMsIHNjKTsKIApAQCAtNjAyLDcgKzYxMSw4IEBACiAKIAl0YXNrcXVldWVfZHJhaW4oc2MtPmhu X3R4X3Rhc2txLCAmc2MtPmhuX3N0YXJ0X3Rhc2spOwogCXRhc2txdWV1ZV9kcmFpbihzYy0+aG5f dHhfdGFza3EsICZzYy0+aG5fdHhlb2ZfdGFzayk7Ci0JdGFza3F1ZXVlX2ZyZWUoc2MtPmhuX3R4 X3Rhc2txKTsKKwlpZiAoc2MtPmhuX3R4X3Rhc2txICE9IGhuX3R4X3Rhc2txKQorCQl0YXNrcXVl dWVfZnJlZShzYy0+aG5fdHhfdGFza3EpOwogCiAJaWZtZWRpYV9yZW1vdmVhbGwoJnNjLT5obl9t ZWRpYSk7CiAjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQpAQCAtMjAzOSw2ICsy MDQ5LDI4IEBACiAJTlZfVU5MT0NLKHNjKTsKIH0KIAorc3RhdGljIHZvaWQKK2huX3R4X3Rhc2tx X2NyZWF0ZSh2b2lkICphcmcgX191bnVzZWQpCit7CisJaWYgKCFobl9zaGFyZV90eF90YXNrcSkK KwkJcmV0dXJuOworCisJaG5fdHhfdGFza3EgPSB0YXNrcXVldWVfY3JlYXRlX2Zhc3QoImhuX3R4 IiwgTV9XQUlUT0ssCisJICAgIHRhc2txdWV1ZV90aHJlYWRfZW5xdWV1ZSwgJmhuX3R4X3Rhc2tx KTsKKwl0YXNrcXVldWVfc3RhcnRfdGhyZWFkcygmaG5fdHhfdGFza3EsIDEsIFBJX05FVCwgImhu IHR4Iik7Cit9CitTWVNJTklUKGhuX3R4dHFfY3JlYXRlLCBTSV9TVUJfRFJJVkVSUywgU0lfT1JE RVJfRklSU1QsCisgICAgaG5fdHhfdGFza3FfY3JlYXRlLCBOVUxMKTsKKworc3RhdGljIHZvaWQK K2huX3R4X3Rhc2txX2Rlc3Ryb3kodm9pZCAqYXJnIF9fdW51c2VkKQoreworCWlmIChobl90eF90 YXNrcSAhPSBOVUxMKQorCQl0YXNrcXVldWVfZnJlZShobl90eF90YXNrcSk7Cit9CitTWVNVTklO SVQoaG5fdHh0cV9kZXN0cm95LCBTSV9TVUJfRFJJVkVSUywgU0lfT1JERVJfRklSU1QsCisgICAg aG5fdHhfdGFza3FfZGVzdHJveSwgTlVMTCk7CisKIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3QgbmV0 dnNjX21ldGhvZHNbXSA9IHsKICAgICAgICAgLyogRGV2aWNlIGludGVyZmFjZSAqLwogICAgICAg ICBERVZNRVRIT0QoZGV2aWNlX3Byb2JlLCAgICAgICAgIG5ldHZzY19wcm9iZSksCgo= --b1_71d46e79a420fe2ef26c7cd98275dd36--