svn commit: r193479 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Kip Macy
kmacy at FreeBSD.org
Fri Jun 5 01:18:13 UTC 2009
Author: kmacy
Date: Fri Jun 5 01:18:12 2009
New Revision: 193479
URL: http://svn.freebsd.org/changeset/base/193479
Log:
- fix callout check
- remove dead assert
- check for msix in timer (no rspq locking)
- don't lock queue in msix interrupt
Modified:
user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c
user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c Fri Jun 5 01:00:28 2009 (r193478)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c Fri Jun 5 01:18:12 2009 (r193479)
@@ -2377,7 +2377,7 @@ cxgb_tick(void *arg)
{
adapter_t *sc = (adapter_t *)arg;
- if ((sc->flags & CXGB_SHUTDOWN) || (sc->open_device_map == 0)
+ if ((sc->flags & CXGB_SHUTDOWN) || (sc->open_device_map == 0))
return;
taskqueue_enqueue(sc->tq, &sc->tick_task);
Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Fri Jun 5 01:00:28 2009 (r193478)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Fri Jun 5 01:18:12 2009 (r193479)
@@ -824,31 +824,33 @@ static void
sge_timer_cb(void *arg)
{
adapter_t *sc = arg;
-#ifndef IFNET_MULTIQUEUE
- struct port_info *pi;
- struct sge_qset *qs;
- struct sge_txq *txq;
- int i, j;
- int reclaim_ofl, refill_rx;
-
- if (sc->open_device_map == 0)
- return;
-
- for (i = 0; i < sc->params.nports; i++) {
- pi = &sc->port[i];
- for (j = 0; j < pi->nqsets; j++) {
- qs = &sc->sge.qs[pi->first_qset + j];
- txq = &qs->txq[0];
- reclaim_ofl = txq[TXQ_OFLD].processed - txq[TXQ_OFLD].cleaned;
- refill_rx = ((qs->fl[0].credits < qs->fl[0].size) ||
- (qs->fl[1].credits < qs->fl[1].size));
- if (reclaim_ofl || refill_rx) {
- taskqueue_enqueue(sc->tq, &pi->timer_reclaim_task);
- break;
+ if ((sc->flags & USING_MSIX) == 0) {
+
+ struct port_info *pi;
+ struct sge_qset *qs;
+ struct sge_txq *txq;
+ int i, j;
+ int reclaim_ofl, refill_rx;
+
+ if (sc->open_device_map == 0)
+ return;
+
+ for (i = 0; i < sc->params.nports; i++) {
+ pi = &sc->port[i];
+ for (j = 0; j < pi->nqsets; j++) {
+ qs = &sc->sge.qs[pi->first_qset + j];
+ txq = &qs->txq[0];
+ reclaim_ofl = txq[TXQ_OFLD].processed - txq[TXQ_OFLD].cleaned;
+ refill_rx = ((qs->fl[0].credits < qs->fl[0].size) ||
+ (qs->fl[1].credits < qs->fl[1].size));
+ if (reclaim_ofl || refill_rx) {
+ taskqueue_enqueue(sc->tq, &pi->timer_reclaim_task);
+ break;
+ }
}
}
}
-#endif
+
if (sc->params.nports > 2) {
int i;
@@ -934,10 +936,9 @@ sge_timer_reclaim(void *arg, int ncount)
adapter_t *sc = pi->adapter;
struct sge_qset *qs;
struct mtx *lock;
-
-#ifdef IFNET_MULTIQUEUE
- panic("%s should not be called with multiqueue support\n", __FUNCTION__);
-#endif
+
+ KASSERT((sc->flags & USING_MSIX) == 0,
+ ("can't call timer reclaim for msi-x"));
for (i = 0; i < nqsets; i++) {
qs = &sc->sge.qs[pi->first_qset + i];
@@ -3101,13 +3102,8 @@ t3_intr_msix(void *data)
adapter_t *adap = qs->port->adapter;
struct sge_rspq *rspq = &qs->rspq;
- mtx_lock(&rspq->lock);
- {
-
- if (process_responses_gts(adap, rspq) == 0)
- rspq->unhandled_irqs++;
- mtx_unlock(&rspq->lock);
- }
+ if (process_responses_gts(adap, rspq) == 0)
+ rspq->unhandled_irqs++;
}
#define QDUMP_SBUF_SIZE 32 * 400
More information about the svn-src-user
mailing list