On 2/26/21 11:59 AM, Mike Rapoport wrote:
On Thu, Feb 25, 2021 at 07:38:44PM +0100, Vlastimil Babka wrote:
On 2/25/21 7:05 PM, Mike Rapoport wrote:
What if two zones are adjacent? I.e. if the hole was at a boundary between two zones.
What do you mean by "adjacent zones"? If there is a hole near the zone boundary, zone span would be clamped to exclude the hole.
Yeah, zone span should exclude those pages, but you still somehow handle them? That's how I read "pages that are not spanned by any node will get links to the adjacent zone/node." So is it always a unique zone/node can be determined?
Let's say we have:
<memory on node 0> ---- pageblock boundary ---- <more memory on node 0>
<a hole> <memory on node 1> ---- pageblock boundary ----
Now I hope such configurations don't really exist :) But if we simulated them in QEMU, what would be the linkage in struct pages in that hole?
I don't think such configuration is possible in practice but it can be forced with e.g memmap="2M hole at 4G - 1M".
Right.
The hole in your example the hole will get node1 for node and zone that spans the beginning of node1 for zone.
Yeah the comments in v8 make that clear now, thanks!