premature optimization is dead. long live premature optimization
simpler chain preallocation (no shmem awareness, will block shmem access while opening buffer file. meh.)