Linux's physical page allocator in mm/page_alloc.c is a buddy system just like this one, tracking per-order free lists and coalescing blocks via the same base-address XOR trick to fight external fragmentation. Get the splitting or coalescing logic wrong and you reproduce the exact class of bug kernel developers chase when large contiguous allocations mysteriously fail under memory pressure.