Split memory into segments Mark with a counter, low counter is preferred for allocations (this keeps low memory available for devices) Only a few segments are required: - my AMD has 3 segments - NUMA with 8 cpus: 10 segments