Operating System - Tru64 Unix
Showing results for 
Search instead for 
Did you mean: 

Tru64 5.1 kernel memory management.

Darren Reed
Occasional Contributor

Tru64 5.1 kernel memory management.

That prior messages was a mistake...

I'm having issues with the kernel memory allocator in Tru64 5.1 and IPFilter.

On a 96MB AlphaSTATION 433, I can load IPFilter without any problems. The exact same code compiled fails to load on a 256MB pc164 bsaed computer because of a 16k kernel memory bucket allocation failure.

The relevant line of output from "vmstat -M" is:
bkt elem_sz in_use el_free bytes fail_nowait
10 16384 3 4 49152 21

I've not tried to tune any kernel parameters, this is just the default setup.

Does anyone know what I need to do to fix this?

Ralf Puchner
Honored Contributor

Re: Tru64 5.1 kernel memory management.

please don't interpret message, post it in original context. Is your message "vmunix: malloc failed: bucket size"?

If so the root cause of the problem could be: memory leak or wrong kernel parameters leading to an allocation problem.

For a starter use sys_check and correct the parameters marked within the output.
Help() { FirstReadManual(urgently); Go_to_it;; }
Hein van den Heuvel
Honored Contributor

Re: Tru64 5.1 kernel memory management.

I'm with Ralf on this. Please start out with the exact (console?) message. Help us understand what made you worry about the 'kernel memory allocator'.

Good call on the: vmstat -M,
but maybe you over-reduced the output.
If a next reply is needed, please attach the full output as a .txt file (maintains formatting).

You can try increasing the map size (kmem_percent) and see if the problem goes away.
sysconfig -q generic kmem_percent ?

Darren Reed
Occasional Contributor

Re: Tru64 5.1 kernel memory management.

The output wasn't reduced (apart from vmstat -M): what's happening is MALLOC(9) is failing and there are no console messages from Mr vmunix.

The actual code does something like this:
MALLOC(foo, void *, 16376, M_TEMP, M_NOWAIT)

This should be ok, according to the man page for MALLOC(9). Changing it to pass M_WAITOK for size > 4k has fixed the problem.

But what I find strange is why a 96MB alpha works with M_NOWAIT and why the 256MB alpha didn't. Is the kmem allocator different for the two variants?

I suppose this is more a question for a forum related kernel (driver) development on Tru64 but I couldn't see one of those..