> If each memory controller has the same distance/latency, you (your firmware) > don't need > to allocate reliable memory per each memory controller. > If distance is problem, another node should be allocated. > > ...is the behavior(splitting zone) really required ?
It's useful from a memory bandwidth perspective to have allocations spread across both memory controllers. Keeping a whole bunch of Xeon cores fed needs all the bandwidth you can get. Socket0 is also a problem. We want to mirror <4GB addresses because there is a bunch of critical stuff there (entire kernel text+data). But we can currently only mirror one block per memory controller, so we end up with just 2GB mirrored (the 2GB-4GB range is MMIO). This isn't enough for even a small machine (I have 128GB on node0 ... but that is really the bare minimum configuration ... 2GB is only enough to cover the "struct page" allocations for node0). I really have to allocate some more mirror from the other memory controller. -Tony -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/