Current-Users archive

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

Re: BNX Double Buffer Allocation

with 2 network interfaces connected (bnx0 & bnx1), I get "WARNING:
mclpool limit reached; increase NMBCLUSTERS", and both network
interfaces stop.  I don't get a panic, just the network connections
won't pass data any more.

I can reproduce this with the wm(4) driver using quad-gigabit ethernet cards in a pretty beefy Dell PE2650 machine (quad-xeon 6Gb RAM etc..). The fix for me was the same, I increased NMBCLUSTERS in my kernel config to 16384.

The mbuf can also be in socket queues; if you drop them you're effectively killing the connection.

Since this seems to be a pervasive issue, would it make sense to get a total count of network interfaces, and raise the NMBCLUSTERS value by say N * 2048 ?

The only reason I'm asking is because I've been in situations where I want to use NetBSD for a firewall or router task in production environments where people are standing around telling me how much better Linux or OpenBSD would work instead and then pointing to the fact that the box won't pass traffic through any of it's 10 interfaces because of the mclpool issue. I understand that it's just a matter of using "gdb --write /netbsd" or recompiling the kernel "real fast" but after about a year goes by I forget these little details and have to google up the dmesg ring-buffer error again and go through the whole exercise while folks sit around tapping their foot and grumbling. It's a me-problem, I know, but it sure would be nice if this "just worked".

Swift Griggs -- <>
Unix Systems Administrator

Home | Main Index | Thread Index | Old Index