So the next step was to use the allocated block to link to subsequent blocks (linked list), managing this entirely internal to the allocator. This allowed me to reduce the malloc chunk size to anything, and use this as the allocation granularity. So trimming becomes much less important, possibly counterproductive. So I change the block size config parameter to a multiple of wire size parameter, defaulted to 20, and implemented the malloc'd linking and chained free upon release.