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
This commit is contained in:
parent
083b2c353d
commit
0e86334196
@ -136,6 +136,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 + \
|
||||
@ -460,8 +462,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)
|
||||
|
Loading…
Reference in New Issue
Block a user