Author: yongari
Date: Tue Jan 17 22:15:33 2012
New Revision: 230286
URL: http://svn.freebsd.org/changeset/base/230286

Log:
  Introduce a tunable that disables use of MSI.
  Non-zero value will use INTx.

Modified:
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c   Tue Jan 17 22:09:33 2012        (r230285)
+++ head/sys/dev/bge/if_bge.c   Tue Jan 17 22:15:33 2012        (r230286)
@@ -2745,6 +2745,9 @@ bge_can_use_msi(struct bge_softc *sc)
 {
        int can_use_msi = 0;
 
+       if (sc->bge_msi_disable != 0)
+               return (0);
+
        /* Disable MSI for polling(4). */
 #ifdef DEVICE_POLLING
        return (0);
@@ -5627,6 +5630,12 @@ bge_add_sysctls(struct bge_softc *sc)
            "Number of fragmented TX buffers of a frame allowed before "
            "forced collapsing");
 
+       sc->bge_msi_disable = 0;
+       snprintf(tn, sizeof(tn), "dev.bge.%d.msi_disable", unit);
+       TUNABLE_INT_FETCH(tn, &sc->bge_msi_disable);
+       SYSCTL_ADD_INT(ctx, children, OID_AUTO, "msi_disable",
+           CTLFLAG_RD, &sc->bge_msi_disable, 0, "Disable MSI");
+
        /*
         * It seems all Broadcom controllers have a bug that can generate UDP
         * datagrams with checksum value 0 when TX UDP checksum offloading is

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h        Tue Jan 17 22:09:33 2012        
(r230285)
+++ head/sys/dev/bge/if_bgereg.h        Tue Jan 17 22:15:33 2012        
(r230286)
@@ -2864,6 +2864,7 @@ struct bge_softc {
        int                     bge_timer;
        int                     bge_forced_collapse;
        int                     bge_forced_udpcsum;
+       int                     bge_msi_disable;
        int                     bge_csum_features;
        struct callout          bge_stat_ch;
        uint32_t                bge_rx_discards;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to