On Thu, Nov 29, 2012 at 04:41:09PM +0100, Mike Belopuhov wrote: > hi, > > drivers ex age alc ale jme se vic vte xe upl and octeon/cmac > make use of the if_iqdrops counter that is not shown by any of our > tools (like netstat). looks like most of its usage comes from > freebsd where they show it in the "netstat -di" output in a new > column. do we want to do that or just convert them to if_ierrors > since 90% of our drivers do only if_ierrors. there's also doesn't > seem to be any rule when to use if_iqdrops (well, since in most > drivers there's no input queueing -- check out upl(4) :) > > the diff below changes all the drivers in our tree to use > if_ierrors instead of if_iqdrops. i've decided to leave > octeon/cmac driver as is because if_iqdrops is used for > debugging purposes there. > > ack? nack? meh?
Seems like a good idea to me to not lose those errors. I have no great desire for a new column in netstat, but no great antagonism to one either. .... Ken > > diff --git sys/dev/isa/if_ex.c sys/dev/isa/if_ex.c > index 49eb077..f93165f 100644 > --- sys/dev/isa/if_ex.c > +++ sys/dev/isa/if_ex.c > @@ -661,7 +661,7 @@ ex_rx_intr(struct ex_softc *sc) > MGETHDR(m, M_DONTWAIT, MT_DATA); > ipkt = m; > if (ipkt == NULL) > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > else { > ipkt->m_pkthdr.rcvif = ifp; > ipkt->m_pkthdr.len = pkt_len; > @@ -673,7 +673,7 @@ ex_rx_intr(struct ex_softc *sc) > m->m_len = MCLBYTES; > else { > m_freem(ipkt); > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > goto rx_another; > } > } > @@ -696,7 +696,7 @@ ex_rx_intr(struct ex_softc *sc) > MT_DATA); > if (m->m_next == NULL) { > m_freem(ipkt); > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > goto rx_another; > } > m = m->m_next; > diff --git sys/dev/pci/if_age.c sys/dev/pci/if_age.c > index f5f6de5..53903c1 100644 > --- sys/dev/pci/if_age.c > +++ sys/dev/pci/if_age.c > @@ -1329,7 +1329,7 @@ age_rxeof(struct age_softc *sc, struct rx_rdesc *rxrd) > desc = rxd->rx_desc; > /* Add a new receive buffer to the ring. */ > if (age_newbuf(sc, rxd) != 0) { > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > /* Reuse Rx buffers. */ > if (sc->age_cdata.age_rxhead != NULL) { > m_freem(sc->age_cdata.age_rxhead); > diff --git sys/dev/pci/if_alc.c sys/dev/pci/if_alc.c > index eac4148..ef22bb5 100644 > --- sys/dev/pci/if_alc.c > +++ sys/dev/pci/if_alc.c > @@ -1952,7 +1952,7 @@ alc_rxeof(struct alc_softc *sc, struct rx_rdesc *rrd) > mp = rxd->rx_m; > /* Add a new receive buffer to the ring. */ > if (alc_newbuf(sc, rxd) != 0) { > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > /* Reuse Rx buffers. */ > if (sc->alc_cdata.alc_rxhead != NULL) > m_freem(sc->alc_cdata.alc_rxhead); > diff --git sys/dev/pci/if_ale.c sys/dev/pci/if_ale.c > index 1e5004e..ef6348f 100644 > --- sys/dev/pci/if_ale.c > +++ sys/dev/pci/if_ale.c > @@ -1552,7 +1552,7 @@ ale_rxeof(struct ale_softc *sc) > m = m_devget((char *)(rs + 1), length - ETHER_CRC_LEN, > ETHER_ALIGN, ifp, NULL); > if (m == NULL) { > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > ale_rx_update_page(sc, &rx_page, length, &prod); > continue; > } > diff --git sys/dev/pci/if_jme.c sys/dev/pci/if_jme.c > index 25c954f..37a1efa 100644 > --- sys/dev/pci/if_jme.c > +++ sys/dev/pci/if_jme.c > @@ -1602,7 +1602,7 @@ jme_rxpkt(struct jme_softc *sc) > > /* Add a new receive buffer to the ring. */ > if (jme_newbuf(sc, rxd) != 0) { > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > /* Reuse buffer. */ > jme_discard_rxbufs(sc, cons, nsegs - count); > if (sc->jme_cdata.jme_rxhead != NULL) { > diff --git sys/dev/pci/if_se.c sys/dev/pci/if_se.c > index 1c75288..b2206ae 100644 > --- sys/dev/pci/if_se.c > +++ sys/dev/pci/if_se.c > @@ -947,7 +947,7 @@ se_rxeof(struct se_softc *sc) > m = cd->se_rx_mbuf[i]; > if (se_newbuf(sc, i) != 0) { > se_discard_rxbuf(sc, i); > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > continue; > } > /* > diff --git sys/dev/pci/if_vic.c sys/dev/pci/if_vic.c > index 247c880..78cece0 100644 > --- sys/dev/pci/if_vic.c > +++ sys/dev/pci/if_vic.c > @@ -858,7 +858,7 @@ vic_rx_proc(struct vic_softc *sc, int q) > if (len < VIC_MIN_FRAMELEN) { > m_freem(m); > > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > goto nextp; > } > > diff --git sys/dev/pci/if_vte.c sys/dev/pci/if_vte.c > index fec0bb5..4e4dc32 100644 > --- sys/dev/pci/if_vte.c > +++ sys/dev/pci/if_vte.c > @@ -1033,7 +1033,7 @@ vte_rxeof(struct vte_softc *sc) > continue; > } > if (vte_newbuf(sc, rxd, 0) != 0) { > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > rxd->rx_desc->drlen = > htole16(MCLBYTES - sizeof(uint32_t)); > rxd->rx_desc->drst = htole16(VTE_DRST_RX_OWN); > diff --git sys/dev/pcmcia/if_xe.c sys/dev/pcmcia/if_xe.c > index b2d10ad..a6f3f9a 100644 > --- sys/dev/pcmcia/if_xe.c > +++ sys/dev/pcmcia/if_xe.c > @@ -684,7 +684,7 @@ xe_intr(arg) > DPRINTF(XED_INTR, > ("%s: too many bytes this interrupt\n", > sc->sc_dev.dv_xname)); > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > /* Drop packet. */ > bus_space_write_2(sc->sc_bst, sc->sc_bsh, > sc->sc_offset + DO0, DO_SKIP_RX_PKT); > diff --git sys/dev/usb/if_upl.c sys/dev/usb/if_upl.c > index a42b850..4008e51 100644 > --- sys/dev/usb/if_upl.c > +++ sys/dev/usb/if_upl.c > @@ -1011,7 +1011,7 @@ upl_input(struct ifnet *ifp, struct mbuf *m) > if (sc->sc_flags & SC_DEBUG) > printf("%s: input queue full\n", ifp->if_xname); > #endif > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > return; > } > IF_ENQUEUE(inq, m); > diff --git sys/net/if_ppp.c sys/net/if_ppp.c > index f7cf3d3..0320676 100644 > --- sys/net/if_ppp.c > +++ sys/net/if_ppp.c > @@ -1520,7 +1520,7 @@ ppp_inproc(struct ppp_softc *sc, struct mbuf *m) > splx(s); > if (sc->sc_flags & SC_DEBUG) > printf("%s: input queue full\n", ifp->if_xname); > - ifp->if_iqdrops++; > + ifp->if_ierrors++; > if (!inq->ifq_congestion) > if_congestion(inq); > goto bad; > diff --git sys/net/if_sl.c sys/net/if_sl.c > index 7b48118..d81c46e 100644 > --- sys/net/if_sl.c > +++ sys/net/if_sl.c > @@ -887,7 +887,6 @@ slinput(c, tp) > if (IF_QFULL(&ipintrq)) { > IF_DROP(&ipintrq); > sc->sc_if.if_ierrors++; > - sc->sc_if.if_iqdrops++; > m_freem(m); > if (!ipintrq.ifq_congestion) > if_congestion(&ipintrq); > diff --git sys/net/if_spppsubr.c sys/net/if_spppsubr.c > index 91a3652..9a257fc 100644 > --- sys/net/if_spppsubr.c > +++ sys/net/if_spppsubr.c > @@ -504,7 +504,6 @@ sppp_input(struct ifnet *ifp, struct mbuf *m) > SPP_ARGS(ifp), m->m_pkthdr.len); > drop: > ++ifp->if_ierrors; > - ++ifp->if_iqdrops; > m_freem (m); > return; > } > @@ -532,7 +531,6 @@ sppp_input(struct ifnet *ifp, struct mbuf *m) > log(LOG_DEBUG, > SPP_FMT "Failed to align packet!\n", > SPP_ARGS(ifp)); > ++ifp->if_ierrors; > - ++ifp->if_iqdrops; > return; > } > }