Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jan 2012 22:15:33 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r230286 - head/sys/dev/bge
Message-ID:  <201201172215.q0HMFXgI009891@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201172215.q0HMFXgI009891>