On 6/25/25 14:42, Álvaro Herrera wrote: > On 2025-Jun-25, Tomas Vondra wrote: > >> Not sure. I thought NUMA doesn't matter very much on 32-bit systems too, >> exactly because those systems tend to use small amounts of memory. But >> then while investigating this issue I realized even rpi5 has NUMA, in >> fact it has a whopping 8 nodes: >> >> debian@raspberry-32:~ $ numactl --hardware >> available: 8 nodes (0-7) > > Interesting. Mine only shows a single node. > > alvherre@amras:~ $ uname -a > Linux amras 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 > (2025-04-30) aarch64 GNU/Linux > alvherre@amras:~ $ sudo numactl --hardware > available: 1 nodes (0) > node 0 cpus: 0 1 2 3 > node 0 size: 8051 MB > node 0 free: 202 MB > node distances: > node 0 > 0: 10 > alvherre@amras:~ $ sudo lscpu > Architecture: aarch64 > CPU op-mode(s): 32-bit, 64-bit > Byte Order: Little Endian > CPU(s): 4 > On-line CPU(s) list: 0-3 > Vendor ID: ARM > Model name: Cortex-A76 > Model: 1 > Thread(s) per core: 1 > Core(s) per cluster: 4 > Socket(s): - > Cluster(s): 1 > Stepping: r4p1 > CPU(s) scaling MHz: 62% > CPU max MHz: 2400.0000 > CPU min MHz: 1500.0000 > BogoMIPS: 108.00 > Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics > fphp > asimdhp cpuid asimdrdm lrcpc dcpop asimddp > [...] > NUMA: > NUMA node(s): 1 > NUMA node0 CPU(s): 0-3 > > > Did you enable something special on it maybe? > > ... Oh, I found this: > https://www.jeffgeerling.com/blog/2024/numa-emulation-speeds-pi-5-and-other-improvements > Sounds like you have this in your system and I don't in mine. >
I don't think I had to enable anything special. On the machine running 32-bit RaspberryPi OS I had to install a newer kernel, but I don't recall doing anything else. I certainly did not apply any kernel patches or anything like that. And it seems one of the rpi machines has exactly the same kernel version: Linux raspberry-64 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux So I wonder what's going on, why there's no NUMA on your rpi. -- Tomas Vondra
debian@raspberry-32:~ $ uname -a Linux raspberry-32 6.12.34-v8+ #1889 SMP PREEMPT Mon Jun 23 11:11:06 BST 2025 aarch64 GNU/Linux debian@raspberry-32:~ $ numactl --hardware available: 8 nodes (0-7) node 0 cpus: 0 1 2 3 node 0 size: 981 MB node 0 free: 881 MB node 1 cpus: 0 1 2 3 node 1 size: 1007 MB node 1 free: 935 MB node 2 cpus: 0 1 2 3 node 2 size: 1007 MB node 2 free: 936 MB node 3 cpus: 0 1 2 3 node 3 size: 943 MB node 3 free: 871 MB node 4 cpus: 0 1 2 3 node 4 size: 1007 MB node 4 free: 936 MB node 5 cpus: 0 1 2 3 node 5 size: 1007 MB node 5 free: 935 MB node 6 cpus: 0 1 2 3 node 6 size: 1007 MB node 6 free: 936 MB node 7 cpus: 0 1 2 3 node 7 size: 990 MB node 7 free: 918 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 10 10 10 10 10 10 10 1: 10 10 10 10 10 10 10 10 2: 10 10 10 10 10 10 10 10 3: 10 10 10 10 10 10 10 10 4: 10 10 10 10 10 10 10 10 5: 10 10 10 10 10 10 10 10 6: 10 10 10 10 10 10 10 10 7: 10 10 10 10 10 10 10 10 debian@raspberry-32:~ $ lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: ARM Model name: Cortex-A76 Model: 1 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): - Cluster(s): 1 Stepping: r4p1 CPU(s) scaling MHz: 100% CPU max MHz: 2400.0000 CPU min MHz: 1500.0000 BogoMIPS: 108.00 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp Caches (sum of all): L1d: 256 KiB (4 instances) L1i: 256 KiB (4 instances) L2: 2 MiB (4 instances) L3: 2 MiB (1 instance) NUMA: NUMA node(s): 8 NUMA node0 CPU(s): 0-3 NUMA node1 CPU(s): 0-3 NUMA node2 CPU(s): 0-3 NUMA node3 CPU(s): 0-3 NUMA node4 CPU(s): 0-3 NUMA node5 CPU(s): 0-3 NUMA node6 CPU(s): 0-3 NUMA node7 CPU(s): 0-3 Vulnerabilities: Gather data sampling: Not affected Indirect target selection: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Reg file data sampling: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; __user pointer sanitization Spectre v2: Mitigation; CSV2, BHB Srbds: Not affected Tsx async abort: Not affected debian@raspberry-64:~ $ uname -a Linux raspberry-64 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux debian@raspberry-64:~ $ numactl --hardware available: 8 nodes (0-7) node 0 cpus: 0 1 2 3 node 0 size: 992 MB node 0 free: 34 MB node 1 cpus: 0 1 2 3 node 1 size: 1019 MB node 1 free: 126 MB node 2 cpus: 0 1 2 3 node 2 size: 1019 MB node 2 free: 35 MB node 3 cpus: 0 1 2 3 node 3 size: 955 MB node 3 free: 34 MB node 4 cpus: 0 1 2 3 node 4 size: 1019 MB node 4 free: 35 MB node 5 cpus: 0 1 2 3 node 5 size: 1019 MB node 5 free: 41 MB node 6 cpus: 0 1 2 3 node 6 size: 1019 MB node 6 free: 287 MB node 7 cpus: 0 1 2 3 node 7 size: 1014 MB node 7 free: 28 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 10 10 10 10 10 10 10 1: 10 10 10 10 10 10 10 10 2: 10 10 10 10 10 10 10 10 3: 10 10 10 10 10 10 10 10 4: 10 10 10 10 10 10 10 10 5: 10 10 10 10 10 10 10 10 6: 10 10 10 10 10 10 10 10 7: 10 10 10 10 10 10 10 10 debian@raspberry-64:~ $ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: ARM Model name: Cortex-A76 Model: 1 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): - Cluster(s): 1 Stepping: r4p1 CPU(s) scaling MHz: 100% CPU max MHz: 2400.0000 CPU min MHz: 1500.0000 BogoMIPS: 108.00 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp Caches (sum of all): L1d: 256 KiB (4 instances) L1i: 256 KiB (4 instances) L2: 2 MiB (4 instances) L3: 2 MiB (1 instance) NUMA: NUMA node(s): 8 NUMA node0 CPU(s): 0-3 NUMA node1 CPU(s): 0-3 NUMA node2 CPU(s): 0-3 NUMA node3 CPU(s): 0-3 NUMA node4 CPU(s): 0-3 NUMA node5 CPU(s): 0-3 NUMA node6 CPU(s): 0-3 NUMA node7 CPU(s): 0-3 Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Reg file data sampling: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; __user pointer sanitization Spectre v2: Mitigation; CSV2, BHB Srbds: Not affected Tsx async abort: Not affected