kata-containers icon indicating copy to clipboard operation
kata-containers copied to clipboard

[RFC] NUMA topology

Open koct9i opened this issue 7 months ago • 8 comments

  • qemu: enable NUMA support Link qemu with libnuma and enable NUMA feature flag.

    Signed-off-by: Konstantin Khlebnikov [email protected]

  • kernel: enable x86-64 ACPI NUMA detection CONFIG_NUMA is already on, but without CONFIG_X86_64_ACPI_NUMA kernel cannot detect NUMA.

    Signed-off-by: Konstantin Khlebnikov [email protected]

  • runtime: add hypervisor options for NUMA topology With enable_numa=true hypervisor will expose host NUMA topology as is: map vm NUMA nodes to host 1:1 and bind vpus to relates CPUS.

    Option "numa_mapping" allows to redefine NUMA nodes mapping:

    • map each vm node to particular host node or several numa nodes
    • emulate numa on host without numa (useful for tests)

    Signed-off-by: Konstantin Khlebnikov [email protected]

  • runtime: enforce NUMA topology by VCPU threads affinity For optimal performance VCPU threads must utilize only NUMA local CPUs.

    Signed-off-by: Konstantin Khlebnikov [email protected]

  • govmm: setup qemu VM NUMA topology for initial CPUs and memory If NUMA topology is enabled:

    • groups CPUs into per NUMA node sockets
    • split memory into per NUMA node modules
    • report NUMA node for VCPU threads

    Signed-off-by: Konstantin Khlebnikov [email protected]

  • runtime: add annotation default_maxmemory It seems there is no annotation for disabling VM memory hotplug. This should be useful at least until hotplug become fully NUMA-aware.

    Signed-off-by: Konstantin Khlebnikov [email protected]

koct9i avatar Jul 19 '24 14:07 koct9i