FreeBSD Bugzilla – Attachment 83463 Details for
Bug 119205
[dc] [patch] Collect various stats regarding dc(4) interrupts
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
dc.releng6.patch
dc.releng6.patch (text/plain), 3.71 KB, created by
Peter Jeremy
on 2007-12-31 23:20:01 UTC
(
hide
)
Description:
dc.releng6.patch
Filename:
MIME Type:
Creator:
Peter Jeremy
Created:
2007-12-31 23:20:01 UTC
Size:
3.71 KB
patch
obsolete
>Index: sys/pci/if_dc.c >=================================================================== >RCS file: /usr/ncvs/src/sys/pci/Attic/if_dc.c,v >retrieving revision 1.160.2.13 >diff -u -r1.160.2.13 if_dc.c >--- sys/pci/if_dc.c 15 Sep 2007 10:00:51 -0000 1.160.2.13 >+++ sys/pci/if_dc.c 25 Dec 2007 20:42:18 -0000 >@@ -342,6 +342,47 @@ > "do not m_devget() in dc driver"); > #endif > >+SYSCTL_NODE(_hw, OID_AUTO, dc, CTLFLAG_RD, 0, "if_dc parameters"); >+ >+static int dc_ints; >+SYSCTL_INT(_hw_dc, OID_AUTO, ints, CTLFLAG_RW, &dc_ints, 0, ""); >+ >+static int dc_isr_abnormal; >+SYSCTL_INT(_hw_dc, OID_AUTO, abnormal, CTLFLAG_RW, &dc_isr_abnormal, 0, ""); >+ >+static int dc_isr_bus_err; >+SYSCTL_INT(_hw_dc, OID_AUTO, bus_err, CTLFLAG_RW, &dc_isr_bus_err, 0, ""); >+ >+static int dc_isr_normal; >+SYSCTL_INT(_hw_dc, OID_AUTO, normal, CTLFLAG_RW, &dc_isr_normal, 0, ""); >+ >+static int dc_isr_rx_nobuf; >+SYSCTL_INT(_hw_dc, OID_AUTO, rx_nobuf, CTLFLAG_RW, &dc_isr_rx_nobuf, 0, ""); >+ >+static int dc_isr_rx_ok; >+SYSCTL_INT(_hw_dc, OID_AUTO, rx_ok, CTLFLAG_RW, &dc_isr_rx_ok, 0, ""); >+ >+static int dc_isr_rx_watdogtimeo; >+SYSCTL_INT(_hw_dc, OID_AUTO, rx_watdogtimeo, CTLFLAG_RW, &dc_isr_rx_watdogtimeo, 0, ""); >+ >+static int dc_isr_tx_idle; >+SYSCTL_INT(_hw_dc, OID_AUTO, tx_idle, CTLFLAG_RW, &dc_isr_tx_idle, 0, ""); >+ >+static int dc_isr_tx_nobuf; >+SYSCTL_INT(_hw_dc, OID_AUTO, tx_nobuf, CTLFLAG_RW, &dc_isr_tx_nobuf, 0, ""); >+ >+static int dc_isr_tx_ok; >+SYSCTL_INT(_hw_dc, OID_AUTO, tx_ok, CTLFLAG_RW, &dc_isr_tx_ok, 0, ""); >+ >+static int dc_isr_tx_underrun; >+SYSCTL_INT(_hw_dc, OID_AUTO, tx_underrun, CTLFLAG_RW, &dc_isr_tx_underrun, 0, ""); >+ >+static int dc_rx_resync1; >+SYSCTL_INT(_hw_dc, OID_AUTO, resync1, CTLFLAG_RW, &dc_rx_resync1, 0, ""); >+ >+static int dc_rx_resync2; >+SYSCTL_INT(_hw_dc, OID_AUTO, resync2, CTLFLAG_RW, &dc_rx_resync2, 0, ""); >+ > DRIVER_MODULE(dc, cardbus, dc_driver, dc_devclass, 0, 0); > DRIVER_MODULE(dc, pci, dc_driver, dc_devclass, 0, 0); > DRIVER_MODULE(miibus, dc, miibus_driver, miibus_devclass, 0, 0); >@@ -3097,26 +3138,43 @@ > /* Disable interrupts. */ > CSR_WRITE_4(sc, DC_IMR, 0x00000000); > >+ dc_ints++; >+ > while (((status = CSR_READ_4(sc, DC_ISR)) & DC_INTRS) && > status != 0xFFFFFFFF && > (ifp->if_drv_flags & IFF_DRV_RUNNING)) { > > CSR_WRITE_4(sc, DC_ISR, status); > >+ if (status & DC_ISR_ABNORMAL) >+ dc_isr_abnormal++; >+ if (status & DC_ISR_NORMAL) >+ dc_isr_normal++; >+ > if (status & DC_ISR_RX_OK) { > int curpkts; >+ >+ dc_isr_rx_ok++; > curpkts = ifp->if_ipackets; > dc_rxeof(sc); > if (curpkts == ifp->if_ipackets) { >- while (dc_rx_resync(sc)) >+ while (dc_rx_resync(sc)) { >+ dc_rx_resync1++; > dc_rxeof(sc); >+ } > } > } > >- if (status & (DC_ISR_TX_OK | DC_ISR_TX_NOBUF)) >+ if (status & (DC_ISR_TX_OK | DC_ISR_TX_NOBUF)) { >+ if (status & DC_ISR_TX_OK) >+ dc_isr_tx_ok++; >+ if (status & DC_ISR_TX_NOBUF) >+ dc_isr_tx_nobuf++; > dc_txeof(sc); >+ } > > if (status & DC_ISR_TX_IDLE) { >+ dc_isr_tx_idle++; > dc_txeof(sc); > if (sc->dc_cdata.dc_tx_cnt) { > DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_TX_ON); >@@ -3124,21 +3182,30 @@ > } > } > >- if (status & DC_ISR_TX_UNDERRUN) >+ if (status & DC_ISR_TX_UNDERRUN) { >+ dc_isr_tx_underrun++; > dc_tx_underrun(sc); >+ } > > if ((status & DC_ISR_RX_WATDOGTIMEO) > || (status & DC_ISR_RX_NOBUF)) { > int curpkts; >+ if (status & DC_ISR_RX_WATDOGTIMEO) >+ dc_isr_rx_watdogtimeo++; >+ if (status & DC_ISR_RX_NOBUF) >+ dc_isr_rx_nobuf++; > curpkts = ifp->if_ipackets; > dc_rxeof(sc); > if (curpkts == ifp->if_ipackets) { >- while (dc_rx_resync(sc)) >+ while (dc_rx_resync(sc)) { >+ dc_rx_resync2++; > dc_rxeof(sc); >+ } > } > } > > if (status & DC_ISR_BUS_ERR) { >+ dc_isr_bus_err++; > dc_reset(sc); > dc_init_locked(sc); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 119205
: 83463 |
83464