NUMA memory block size

Anton Blanchard anton at
Sat Apr 3 23:43:05 EST 2004

> 1. Why do we use a full int for node ID? It's quite unlikely that we will
> have 2 billion nodes anytime soon. Current limit is 16. :-) Switching to a
> char instead of int might be worth it.

Agreed, we should switch it to an unsigned char.

> 2. A lmb_alloc() approach has the benefit of only allocating as much table
> as we actually have physical memory in the system. At least this way we'd
> only allocate in proportion to how much memory the machine has. 1MB table
> for a 2TB machine isn't too bad. On a 128GB system, size will be the same
> as before (32KB).

This does add another load:

       ld 10,.LC1-.LCTOC1(30)	/* numa_cpu_lookup_table */
       sldi 8,8,2
       li 0,17024
       ld 7,.LC2-.LCTOC1(30)
here ->ld 11,0(10)		/* *numa_cpu_lookup_table */
       lwax 9,8,11

But always allocating 128kB (2TB, 16MB segments, char for a node id)
seems excessive so I like your idea of dynamically allocating the


** Sent via the linuxppc64-dev mail list. See

More information about the Linuxppc64-dev mailing list