svn commit: r189945 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/re

Pyun YongHyeon yongari at FreeBSD.org
Tue Mar 17 19:07:08 PDT 2009


Author: yongari
Date: Wed Mar 18 02:07:07 2009
New Revision: 189945
URL: http://svn.freebsd.org/changeset/base/189945

Log:
  MFC r188381:
    Reclaim transmitted frames in re_tick(). This is for PCIe
    controllers that lose Tx completion interrupts under certain
    conditions. With this change it's safe to use MSI on PCIe
    controllers so enable MSI on these controllers.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:03:16 2009	(r189944)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:07:07 2009	(r189945)
@@ -156,7 +156,7 @@ MODULE_DEPEND(re, miibus, 1, 1, 1);
 #include "miibus_if.h"
 
 /* Tunables. */
-static int msi_disable = 1;
+static int msi_disable = 0;
 TUNABLE_INT("hw.re.msi_disable", &msi_disable);
 
 #define RE_CSUM_FEATURES    (CSUM_IP | CSUM_TCP | CSUM_UDP)
@@ -2064,6 +2064,13 @@ re_tick(void *xsc)
 	mii_tick(mii);
 	if ((sc->rl_flags & RL_FLAG_LINK) == 0)
 		re_miibus_statchg(sc->rl_dev);
+	/*
+	 * Reclaim transmitted frames here. Technically it is not
+	 * necessary to do here but it ensures periodic reclamation
+	 * regardless of Tx completion interrupt which seems to be
+	 * lost on PCIe based controllers under certain situations. 
+	 */
+	re_txeof(sc);
 	re_watchdog(sc);
 	callout_reset(&sc->rl_stat_callout, hz, re_tick, sc);
 }


More information about the svn-src-all mailing list