svn commit: r301952 - stable/10/sys/dev/hyperv/netvsc
Sepherosa Ziehau
sephe at FreeBSD.org
Thu Jun 16 05:24:01 UTC 2016
Author: sephe
Date: Thu Jun 16 05:24:00 2016
New Revision: 301952
URL: https://svnweb.freebsd.org/changeset/base/301952
Log:
MFC 297809,297810,297811
297809
hyperv/hn: Cap default # of rings to 8.
8 gives the best performance in both Azure and local Hyper-V on both
10Ge and 40Ge. More rings are still allowed by manual configuration.
Reviewed by: Dexuan Cui <decui microsoft com>
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5879
297810
hyperv/hn: By default enable multiple TX/RX rings, aka vRSS.
Reviewed by: Dexuan Cui <decui microsoft com>
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5880
297811
hyperv/hn: Remove unnecessary NULL checks
Submitted by: Jun Su <junsu microsoft com>
Reviewed by: sephe
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5905
Modified:
stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.c
stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.c
==============================================================================
--- stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.c Thu Jun 16 05:12:28 2016 (r301951)
+++ stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.c Thu Jun 16 05:24:00 2016 (r301952)
@@ -741,10 +741,8 @@ cleanup:
* Free the packet buffers on the netvsc device packet queue.
* Release other resources.
*/
- if (net_dev) {
- sema_destroy(&net_dev->channel_init_sema);
- free(net_dev, M_NETVSC);
- }
+ sema_destroy(&net_dev->channel_init_sema);
+ free(net_dev, M_NETVSC);
return (NULL);
}
Modified: stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
==============================================================================
--- stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jun 16 05:12:28 2016 (r301951)
+++ stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jun 16 05:24:00 2016 (r301952)
@@ -138,6 +138,8 @@ __FBSDID("$FreeBSD$");
#define HN_LROENT_CNT_DEF 128
+#define HN_RING_CNT_DEF_MAX 8
+
#define HN_RNDIS_MSG_LEN \
(sizeof(rndis_msg) + \
RNDIS_HASH_PPI_SIZE + \
@@ -282,12 +284,12 @@ static int hn_use_if_start = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, use_if_start, CTLFLAG_RDTUN,
&hn_use_if_start, 0, "Use if_start TX method");
-static int hn_chan_cnt = 1;
+static int hn_chan_cnt = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, chan_cnt, CTLFLAG_RDTUN,
&hn_chan_cnt, 0,
"# of channels to use; each channel has one RX ring and one TX ring");
-static int hn_tx_ring_cnt = 1;
+static int hn_tx_ring_cnt = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, tx_ring_cnt, CTLFLAG_RDTUN,
&hn_tx_ring_cnt, 0, "# of TX rings to use");
@@ -480,8 +482,14 @@ netvsc_attach(device_t dev)
* The # of RX rings to use is same as the # of channels to use.
*/
ring_cnt = hn_chan_cnt;
- if (ring_cnt <= 0 || ring_cnt > mp_ncpus)
+ if (ring_cnt <= 0) {
+ /* Default */
+ ring_cnt = mp_ncpus;
+ if (ring_cnt > HN_RING_CNT_DEF_MAX)
+ ring_cnt = HN_RING_CNT_DEF_MAX;
+ } else if (ring_cnt > mp_ncpus) {
ring_cnt = mp_ncpus;
+ }
tx_ring_cnt = hn_tx_ring_cnt;
if (tx_ring_cnt <= 0 || tx_ring_cnt > ring_cnt)
Modified: stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c
==============================================================================
--- stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Jun 16 05:12:28 2016 (r301951)
+++ stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Jun 16 05:24:00 2016 (r301952)
@@ -406,8 +406,7 @@ hv_rf_send_offload_request(struct hv_dev
}
cleanup:
- if (request)
- hv_put_rndis_request(rndis_dev, request);
+ hv_put_rndis_request(rndis_dev, request);
return (ret);
}
@@ -908,10 +907,8 @@ hv_rf_halt_device(rndis_device *device)
}
device->state = RNDIS_DEV_UNINITIALIZED;
-
- if (request != NULL) {
- hv_put_rndis_request(device, request);
- }
+
+ hv_put_rndis_request(device, request);
return (0);
}
More information about the svn-src-stable-10
mailing list