Date: Sat, 14 Dec 2002 22:04:26 -0500 (EST) From: Andrew Gallatin <gallatin@cs.duke.edu> To: naddy@mips.inka.de (Christian Weisgerber) Cc: freebsd-alpha@FreeBSD.ORG, mux@FreeBSD.ORG Subject: Re: cvs commit: www/en/projects/busdma index.sgml style.css (fwd) Message-ID: <15867.61754.299505.858101@grasshopper.cs.duke.edu> In-Reply-To: <atgnee$p9$1@kemoauc.mips.inka.de> References: <Pine.NEB.3.96L.1021209130854.19409C-100000@fledge.watson.org> <20021209194400.GA27086@elvis.mu.org> <15860.62239.549294.224934@grasshopper.cs.duke.edu> <20021214152341.GE27086@elvis.mu.org> <atgnee$p9$1@kemoauc.mips.inka.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Christian Weisgerber writes: > All mbufs or mbuf clusters exhausted, please see tuning(7). I have xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0x10000-0x1007f mem 0x41322000-0x4132 207f irq 10 at device 11.0 on pci0 So the problem must be in the code path for the older cards.. (my 905B uses different transmit and encap functions) Ah, I see it. The mbuf does not seem to be recorded in the ring if the dmamap_load_mbuf succeeds in xl_encap(). Can you try the following untested patch, please? (on top of Maxime's earlier patch). Interesting.. I see one nasty pre-existing condition that might cause a memory leak. What happens if xl_encap() fails? Ugh, that should be fixed too! Drew --- if_xl.c.bak Sat Dec 14 22:01:30 2002 +++ if_xl.c Sat Dec 14 22:01:55 2002 @@ -2419,6 +2419,7 @@ mtod(m_new, caddr_t)); m_new->m_pkthdr.len = m_new->m_len = m_head->m_pkthdr.len; m_freem(m_head); + m_head = m_new; f = &c->xl_ptr->xl_frag[0]; bus_dmamap_load(sc->xl_tag, c->xl_map, mtod(m_new, void *), MCLBYTES, xl_dma_map_addr, &f->xl_addr, 0); @@ -2428,6 +2429,7 @@ c->xl_ptr->xl_next = 0; } + c->xl_mbuf = m_head; bus_dmamap_sync(sc->xl_tag, c->xl_map, BUS_DMASYNC_PREREAD); return(0); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15867.61754.299505.858101>