On 1/25/2024 6:07 PM, Dave Hansen wrote: > On 1/9/24 08:57, Artem Kuzin wrote: >> We already have per-NUMA node init_mm, but this is not enough. >> We need this array of pointers in the task struct due to the proper pgd >> (per-NUMA node) should be used for threads of process that occupy more >> than one NUMA node. > Let me repeat what Christoph said in a bit more forceful way. > > MAX_NUMNODES can be 1024. You're adding 1023*8 bytes of overhead for > each process ... everywhere, including on my single node laptop. That's > completely unacceptable. You need to find another way to do this. > > I'd suggest just ignoring the problem for now. Do multi-node processes > with a later optimization. Hi Dave, thanks to you and Christoph for the comments. I've just gave some details why this is necessary, and didn't want to push the solution with MAX_NUMNODES forward, this is temporarily thing and this place should be definitely updated in future. As for possible options, for now I am thinking about two: 1. additional config option to limit the number of page tables and corresponding replicas 2. setup per-NUMA node page tables and replicas in a lazy way allocating them on demand But here I need to try and test everything. Thanks!