From owner-freebsd-arm@freebsd.org Sat Jan 4 20:35:59 2020 Return-Path: Delivered-To: freebsd-arm@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00DE71F6FE2; Sat, 4 Jan 2020 20:35:59 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vtr.rulingia.com (vtr.rulingia.com [IPv6:2001:19f0:5801:ebe:5400:1ff:fe53:30fd]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vtr.rulingia.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47qtp53ZRgz4blF; Sat, 4 Jan 2020 20:35:56 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from server.rulingia.com (ppp239-208.static.internode.on.net [59.167.239.208]) by vtr.rulingia.com (8.15.2/8.15.2) with ESMTPS id 004KZgAM011995 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 5 Jan 2020 07:35:48 +1100 (AEDT) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.15.2/8.15.2) with ESMTPS id 004KZZlc033410 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 5 Jan 2020 07:35:35 +1100 (AEDT) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.15.2/8.15.2/Submit) id 004KZZev033409; Sun, 5 Jan 2020 07:35:35 +1100 (AEDT) (envelope-from peter) Date: Sun, 5 Jan 2020 07:35:35 +1100 From: Peter Jeremy To: Mark Millard Cc: freebsd-arm , FreeBSD Current Subject: Re: head -r356066 reaching kern.ipc.nmbclusters on Rock64 (CortexA53 with 4GiByte of RAM) while putting files on it via nfs: some evidence Message-ID: <20200104203535.GA32966@server.rulingia.com> References: <65659DD9-335A-40C7-A6DE-B71019BCD6E6.ref@yahoo.com> <65659DD9-335A-40C7-A6DE-B71019BCD6E6@yahoo.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="J2SCkAp4GZ/dPZZf" Content-Disposition: inline In-Reply-To: <65659DD9-335A-40C7-A6DE-B71019BCD6E6@yahoo.com> X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47qtp53ZRgz4blF X-Spamd-Bar: ------- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of peter@rulingia.com designates 2001:19f0:5801:ebe:5400:1ff:fe53:30fd as permitted sender) smtp.mailfrom=peter@rulingia.com X-Spamd-Result: default: False [-7.59 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+mx]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; DMARC_NA(0.00)[rulingia.com]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; SIGNED_PGP(-2.00)[]; FREEMAIL_TO(0.00)[yahoo.com]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:20473, ipnet:2001:19f0:5800::/38, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-3.19)[ip: (-9.67), ipnet: 2001:19f0:5800::/38(-4.84), asn: 20473(-1.40), country: US(-0.05)] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jan 2020 20:35:59 -0000 --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Sorry for the delay in responding. On 2019-Dec-27 21:59:49 -0800, Mark Millard via freebsd-arm wrote: >The following sort of sequence leads to the Rock64 not >responding on the console or over ethernet, after notifying >of nmbclusters having been reached. (This limits what >information I have of what things were like at the end.) There's a bug in the dwc(4) driver such that it can leak mbuf clusters. I've been running with the following patch but need to clean it up samewhat before I can commit it: Index: sys/dev/dwc/if_dwc.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/dev/dwc/if_dwc.c (revision 356350) +++ sys/dev/dwc/if_dwc.c (working copy) @@ -755,7 +755,6 @@ dwc_rxfinish_locked(struct dwc_softc *sc) { struct ifnet *ifp; - struct mbuf *m0; struct mbuf *m; int error, idx, len; uint32_t rdes0; @@ -762,9 +761,8 @@ =20 ifp =3D sc->ifp; =20 - for (;;) { + for (; ; sc->rx_idx =3D next_rxidx(sc, sc->rx_idx)) { idx =3D sc->rx_idx; - rdes0 =3D sc->rxdesc_ring[idx].tdes0; if ((rdes0 & DDESC_RDES0_OWN) !=3D 0) break; @@ -773,9 +771,9 @@ BUS_DMASYNC_POSTREAD); bus_dmamap_unload(sc->rxbuf_tag, sc->rxbuf_map[idx].map); =20 + m =3D sc->rxbuf_map[idx].mbuf; len =3D (rdes0 >> DDESC_RDES0_FL_SHIFT) & DDESC_RDES0_FL_MASK; if (len !=3D 0) { - m =3D sc->rxbuf_map[idx].mbuf; m->m_pkthdr.rcvif =3D ifp; m->m_pkthdr.len =3D len; m->m_len =3D len; @@ -784,24 +782,33 @@ /* Remove trailing FCS */ m_adj(m, -ETHER_CRC_LEN); =20 + /* Consume the mbuf and mark it as consumed */ + sc->rxbuf_map[idx].mbuf =3D NULL; DWC_UNLOCK(sc); (*ifp->if_input)(ifp, m); DWC_LOCK(sc); + m =3D NULL; } else { /* XXX Zero-length packet ? */ } =20 - if ((m0 =3D dwc_alloc_mbufcl(sc)) !=3D NULL) { - if ((error =3D dwc_setup_rxbuf(sc, idx, m0)) !=3D 0) { - /* - * XXX Now what? - * We've got a hole in the rx ring. - */ + if (m =3D=3D NULL) { + if ((m =3D dwc_alloc_mbufcl(sc)) =3D=3D NULL) { + if_inc_counter(sc->ifp, IFCOUNTER_IQDROPS, 1); + continue; } - } else + } + + if ((error =3D dwc_setup_rxbuf(sc, idx, m)) !=3D 0) { + m_free(m); + device_printf(sc->dev, + "dwc_setup_rxbuf returned %d\n", error); if_inc_counter(sc->ifp, IFCOUNTER_IQDROPS, 1); - - sc->rx_idx =3D next_rxidx(sc, sc->rx_idx); + /* + * XXX Now what? + * We've got a hole in the rx ring. + */ + } } } --=20 Peter Jeremy --J2SCkAp4GZ/dPZZf Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE7rKYbDBnHnTmXCJ+FqWXoOSiCzQFAl4Q9xJfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVF QjI5ODZDMzA2NzFFNzRFNjVDMjI3RTE2QTU5N0EwRTRBMjBCMzQACgkQFqWXoOSi CzQTpg//WnVv/CeDAL5WlR+xk8ocAbu0G3KymVzUkMjYvCWRJ0Fc3M9c+8yw/IAv j9p5emq1+APq89fB4edxhPH4nqjZEnuxd47/Gla8QMLQ1I9g0eyZwdb7wg6Oa+bp 23JffW2ovdMzMatKVnC9soB1QflXRCfGEmhJV5L/JV3xB/fjNs5soQrXk45gLDnY lSDA24IAjnGz8a1ZialujFPf581A4Nts3DMXNvvsIUr4nrEF73ZWs27kZtodEam6 EdkQnfrpW3bzQjca4ubefi6ONAb3dui/VLV4f9IWUUrKaY1IA2NMxcDWa2t8dEzw c8E88qfycXLpIRbVOWUTEx4WHeyBBf/OdtqoyQzU8TrAbfAU4kxjuTyEBmnaQRF5 NSBkc04iK7R4NbOPcq0GCzhW0lWjLaIwCVBfTAZ2vPPo50QiMeBfU+Y/jLXMxKKu QvfwFaPsbF1H3yUn3u8T/EJRQ1mX1X4yYSGRd+PG1k8SGjaezmAHZ2zEL/HHawu3 CSrU8CdFn60reZqCrLAvw3js8b2M/cmfNy9S4mkuGdnakPgPYuV0h/e/xd+kt/6Q IuIfZ6O6HiZCaCGFYRsLr3+McV2dOFhGdL5fPefzBcmNmXnkjJh+Ee3yLQSLizLF jxijm9qjA3Uo5gdxOkaK2jR9SGztC2XmtF37ly4w69fdPYXG16E= =iJkU -----END PGP SIGNATURE----- --J2SCkAp4GZ/dPZZf--