Cache memory allocator errors during backup after changing transfer buffer size in the tape backup software

  • 3902982
  • 15-Oct-2007
  • 26-Apr-2012

Environment

Novell NetWare 6.5

Situation

The server would show Cache Memory Allocator errors all over the server console screen when performing a tape backup. This problem appeared with HP Data Protector software after a code change that increased the size of the transfer buffer from 64k to either 128 or 256k. This problem could happen with any tape software if the buffer size were changed. Some solutions offer this as a selectable option to the user. In this case, the change was made to HP's code. This problem was duplicated in house at Novell using other Vendor's software as well as HP's. It was NWPA.NLM that would leak the memory away on the server. NWPA is using Alloc() to allocate linear-equals-physical memory. Alloc() handles large requests >= 64K differently then other requests and does not cache or reuse memory nodes once they are freed. The memory allocated by NWPA is being freed by the storage device at interrupt time. Memory freed at interrupt time (Free()) is placed on a special cross-processor (X) free list which is not freed until the garbage collector runs. Smaller memory allocations will actually try to use nodes from the X processor list if needed. The garbage collector was not running fast enough to keep up with the larger memory demand from nwpa.nlm due to the larger buffers being passed in to the nwpa passthru functionality.

Resolution

07/03/2007 11:36 AM 1,344,184 server.exe or later.
This server.exe should be in sp7 for Netware 6.5

Status

Reported to Engineering