Skip to content

Enable NUMA and NUMA balancing#223

Merged
rene merged 1 commit intolf-edge:eve-kernel-amd64-v6.12.49-genericfrom
rucoder:rucoder/enable-numa
Nov 17, 2025
Merged

Enable NUMA and NUMA balancing#223
rene merged 1 commit intolf-edge:eve-kernel-amd64-v6.12.49-genericfrom
rucoder:rucoder/enable-numa

Conversation

@rucoder
Copy link
Collaborator

@rucoder rucoder commented Nov 17, 2025

  • EVE runs on many big servers with multiple sockets these days. Let's enable NUMA and NUMA balancing in order to improve memory allocation strategy.
  • it is also required for RT workloads and lets libpqos to detect NUMA topology, however NUMA balancing should be disable for PREEMPT_RT to avoid page table shuffling and this is done by default so no changes required in rt.fragment

Clarification on possible impact

  • Linux CPU IDs (cpu0, cpu1, …) come from APIC IDs → logical CPU numbers assigned during SMP init, so EVE will not see any CPU re-numbering
  • QEMU behavior remains identical.
  • only one thing changes: where kernel allocates memory. with NUMA enabled it will try to avoid cross-socket memory allocation

- EVE runs on many big servers with multiple sockets these days. Let's
enable NUMA and NUMA balancing in order to improve memory allocation strategy.
- it is also required for RT workloads and lets libpqos to detect NUMA topology, however
NUMA balancing should be disable for PREEMPT_RT to avoid page table shuffling and this is
done by default so no changes required in rt.fragment

Signed-off-by: Mikhail Malyshev <mike.malyshev@gmail.com>
@rucoder rucoder force-pushed the rucoder/enable-numa branch from c3748e0 to 6cb43d1 Compare November 17, 2025 10:16
@rucoder
Copy link
Collaborator Author

rucoder commented Nov 17, 2025

@OhmSpectator i hope it won't affect CPU pinning in EVE. Do we assume "flat" CPU core topology ?

@OhmSpectator
Copy link
Member

We assume. But we operate only with CPU IDs. So, I don't think NUMA-enabling will change them.

On the other side, this change can affect a lot of other aspect of the system functionality.

@rene
Copy link
Collaborator

rene commented Nov 17, 2025

@rucoder , we don't have any NUMA configuration for QEMU and containerd, so these should be "not NUMA" aware, I'm a bit concerned this can decrease the performance instead of improve.... is this really needed? From how many cores should we see NUMA improvements?

@rucoder
Copy link
Collaborator Author

rucoder commented Nov 17, 2025

@rucoder , we don't have any NUMA configuration for QEMU and containerd, so these should be "not NUMA" aware, I'm a bit concerned this can decrease the performance instead of improve.... is this really needed? From how many cores should we see NUMA improvements?

NUMA is not about cores, it is about memory allocation. Kernel will allocate memory on the DIMM that is attached to the same CPU socket. Neither contained nor qemu care about it.

@rucoder
Copy link
Collaborator Author

rucoder commented Nov 17, 2025

@OhmSpectator @rene I updated PR description with possible impact section

@rene rene merged commit 638c9c2 into lf-edge:eve-kernel-amd64-v6.12.49-generic Nov 17, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants