Author: sephe
Date: Thu Dec  1 03:27:16 2016
New Revision: 309346
URL: https://svnweb.freebsd.org/changeset/base/309346

Log:
  hyperv/hn: Add HN_DEBUG kernel option.
  
  If bufring is used for per-TX ring descs, don't update "available"
  counter, which is only used to help debugging.
  
  MFC after:    1 week
  Sponsored by: Microsoft
  Differential Revision:        https://reviews.freebsd.org/D8674

Modified:
  head/sys/conf/options
  head/sys/dev/hyperv/netvsc/if_hn.c
  head/sys/modules/hyperv/netvsc/Makefile

Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options       Thu Dec  1 02:35:15 2016        (r309345)
+++ head/sys/conf/options       Thu Dec  1 03:27:16 2016        (r309346)
@@ -1001,3 +1001,5 @@ EVDEV_SUPPORT     opt_evdev.h
 EVDEV_DEBUG    opt_evdev.h
 UINPUT_DEBUG   opt_evdev.h
 
+# Hyper-V network driver
+HN_DEBUG       opt_hn.h

Modified: head/sys/dev/hyperv/netvsc/if_hn.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/if_hn.c  Thu Dec  1 02:35:15 2016        
(r309345)
+++ head/sys/dev/hyperv/netvsc/if_hn.c  Thu Dec  1 03:27:16 2016        
(r309346)
@@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$");
 
 #include "opt_inet6.h"
 #include "opt_inet.h"
+#include "opt_hn.h"
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -1428,10 +1429,12 @@ hn_txdesc_put(struct hn_tx_ring *txr, st
        txr->hn_txdesc_avail++;
        SLIST_INSERT_HEAD(&txr->hn_txlist, txd, link);
        mtx_unlock_spin(&txr->hn_txlist_spin);
-#else
+#else  /* HN_USE_TXDESC_BUFRING */
+#ifdef HN_DEBUG
        atomic_add_int(&txr->hn_txdesc_avail, 1);
-       buf_ring_enqueue(txr->hn_txdesc_br, txd);
 #endif
+       buf_ring_enqueue(txr->hn_txdesc_br, txd);
+#endif /* !HN_USE_TXDESC_BUFRING */
 
        return 1;
 }
@@ -1457,8 +1460,10 @@ hn_txdesc_get(struct hn_tx_ring *txr)
 
        if (txd != NULL) {
 #ifdef HN_USE_TXDESC_BUFRING
+#ifdef HN_DEBUG
                atomic_subtract_int(&txr->hn_txdesc_avail, 1);
 #endif
+#endif /* HN_USE_TXDESC_BUFRING */
                KASSERT(txd->m == NULL && txd->refs == 0 &&
                    STAILQ_EMPTY(&txd->agg_list) &&
                    txd->chim_index == HN_NVS_CHIM_IDX_INVALID &&
@@ -3467,9 +3472,11 @@ hn_tx_ring_create(struct hn_softc *sc, i
                if (txr->hn_tx_sysctl_tree != NULL) {
                        child = SYSCTL_CHILDREN(txr->hn_tx_sysctl_tree);
 
+#ifdef HN_DEBUG
                        SYSCTL_ADD_INT(ctx, child, OID_AUTO, "txdesc_avail",
                            CTLFLAG_RD, &txr->hn_txdesc_avail, 0,
                            "# of available TX descs");
+#endif
 #ifdef HN_IFSTART_SUPPORT
                        if (!hn_use_if_start)
 #endif

Modified: head/sys/modules/hyperv/netvsc/Makefile
==============================================================================
--- head/sys/modules/hyperv/netvsc/Makefile     Thu Dec  1 02:35:15 2016        
(r309345)
+++ head/sys/modules/hyperv/netvsc/Makefile     Thu Dec  1 03:27:16 2016        
(r309346)
@@ -5,7 +5,7 @@
 
 KMOD=  hv_netvsc
 SRCS=  hn_nvs.c hn_rndis.c if_hn.c
-SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h vmbus_if.h
+SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h vmbus_if.h opt_hn.h
 
 CFLAGS+= -I${.CURDIR}/../../../dev/hyperv/netvsc
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to