Running into an mbuf leak with bridging and tap
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Tue Nov 23 08:20:50 PST 2004
Robert,
> I'm running an ethernet over TCP bridge using a combination of the native
> ethernet bridge support and the tap driver. Basically, a daemon sits on
> /dev/tapX and bridges ethernet frames using a small header over a TCP
> connection. The bridge support is loaded as a kld, as is the tap support,
> and both modules remain resident from then on. After a couple of days,
> perhaps triggered by the connection going up and down and leaving bridging
> turned on even when nothing is listening on the tap device, the endpoints
> will run out of mbufs:
>
> 26707 mbufs in use
> 25453/25600 mbuf clusters in use (current/max)
> 0/3/6656 sfbufs in use (current/peak/max)
> 57582 KBytes allocated to network
> 0 requests for sfbufs denied
> 0 requests for sfbufs delayed
> 0 requests for I/O initiated by sendfile
> 0 calls to protocol drain routines
>
> Under normal circumstances (i.e., without tap and ethernet bridging on),
> this doesn't happen, suggesting that maybe there's a leak in the bridging
> code or tap code. I've now seen this with three boxes, a blend of UP and
> SMP. I haven't yet had a chance to sit down with a debugging kernel. Has
> anyone else seen anything like this?
could you please try to use ng_bridge(4)? example scripts are in
/usr/share/examples/netgraph. this could tell me if tap(4) is at fault.
max
More information about the freebsd-net
mailing list