FreeBSD 4.9 losing mbufs!!!
Robert Watson
rwatson at FreeBSD.org
Mon Apr 24 13:21:06 UTC 2006
On Tue, 18 Apr 2006, Stephen Clark wrote:
> I have discovered that if I disable quaqqa/ospfd then I don't lose mbufs!
> This makes it appear that the mbuf leak is in the multicast routing logic.
> In fact I lose mbufs even with the both system basically idle but with a 100
> vpn/gre with multicast going on thru the gre then the vpn.
>
> Any ideas on where to focus my continued investigation?
>
> Thanks to everybody who has responded.
Steve,
Sorry not to have caught this thread earlier; I've been on travel for the last
few weeks. My general suggestion would be to try to narrow the code paths
traversed to try to eliminate as much code as possible from the search. It
sounds like you've done that pretty effectively :-).
Typically, memory leaks occur in edge error cases, where the memory is not
properly released, or ownership is unclear. My suggestion would be to add
counters (or look at existing counters where already present) and see if
there's an error case being triggered in about the same quantity that mbuf
leakage is occuring. Chances are, there's an error being returned and a
missing m_freem().
Based on your comments above, I might also pay attention to the routing socket
path -- the rate of leak could correspond to the routing daemons talking to
the network stack, rather than the rate of traffic. For example, it could be
that one of the routing messages is handled improperly resulting in a leak.
Unfortunately, tracking down memory leaks can be quite difficult, and tends to
require a combination of dogged persistence and luck...
Robert N M Watson
More information about the freebsd-stable
mailing list