"a huge performance hit"
Moving a few megabytes of memory, and updating some pointers? You do realise that modern CPU's run at multiple GHz? And move memory at many 10's of GB/second? Stop talking bollocks. Grab the kernel mutex, move everything, 0.001 seconds later it's done, release it. You won't even notice.