NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/60175: panic: igc_rxrefill: msix=0 id=351



The following reply was made to PR kern/60175; it has been noted by GNATS.

From: Thomas Klausner <wiz%netbsd.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: rin%netbsd.org@localhost
Subject: Re: kern/60175: panic: igc_rxrefill: msix=0 id=351
Date: Fri, 22 May 2026 15:29:35 +0200

 I had this again today: panic: igc_rxrefill: msix=1 id=915
 
 Looking at the code:
 
          for (id = rxr->next_to_check; id != end; id = igc_rxdesc_incr(sc, id)) {
                  if (igc_get_buf(rxr, id, true)) {
                          /* XXXRO */
                          panic("%s: msix=%d id=%d\n", __func__, rxr->me, id);
                  }
          }
 
 So a 'strict' igc_get_buf failed.
 Looking at igc_get_buf, it can fail when
 - rxr->rx_buffers[id].buf is already filled in (EINVAL)
 - MGETHDR(m, M_DONTWAIT, MT_DATA) fails to provide an mbuf in m (ENOBUFS)
 - MCLGET(m, M_DONTWAIT) returns an m that is !(m->m_flags & M_EXT)) (ENOBUFS)
 - bus_dmamap_load_mbuf fails
 
 So let's assume there is a problem with the mbuf because of resource
 starvation, the bulk build takes up a lot of RAM.
 
 It would be nice if the driver handled this.
 
 Cheers,
  Thomas
 



Home | Main Index | Thread Index | Old Index