Skip to content
Snippets Groups Projects
  • Eduardo Habkost's avatar
    549fc54b
    numa: Print warning if no node is assigned to a CPU · 549fc54b
    Eduardo Habkost authored
    
    We need all possible CPUs (including hotplug ones) to be present in the
    SRAT when QEMU starts. QEMU already does that correctly today, the only
    problem is that when a CPU is omitted from the NUMA configuration, it is
    silently assigned to node 0.
    
    Check if all CPUs up to max_cpus are present in the NUMA configuration
    and warn about missing CPUs.
    
    Make it just a warning, to allow management software to be updated if
    necessary. In the future we may make it a fatal error instead.
    
    Command-line examples:
    
    * Correct, no warning:
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-3
    
    * Incomplete, with warnings:
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0
      qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 1 2 3
      qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-2
      qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 3
      qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config
    
    Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
    ---
    v1 -> v2: (no changes)
    
    v2 -> v3:
     * Use enumerate_cpus() and error_report() for error message
     * Simplify logic using bitmap_full()
    
    v3 -> v4:
     * Clarify error message, mention that all CPUs up to
       maxcpus need to be described in NUMA config
    
    v4 -> v5:
     * Commit log update, to make problem description clearer
    549fc54b
    History
    numa: Print warning if no node is assigned to a CPU
    Eduardo Habkost authored
    
    We need all possible CPUs (including hotplug ones) to be present in the
    SRAT when QEMU starts. QEMU already does that correctly today, the only
    problem is that when a CPU is omitted from the NUMA configuration, it is
    silently assigned to node 0.
    
    Check if all CPUs up to max_cpus are present in the NUMA configuration
    and warn about missing CPUs.
    
    Make it just a warning, to allow management software to be updated if
    necessary. In the future we may make it a fatal error instead.
    
    Command-line examples:
    
    * Correct, no warning:
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-3
    
    * Incomplete, with warnings:
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0
      qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 1 2 3
      qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config
    
      $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-2
      qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 3
      qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config
    
    Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
    ---
    v1 -> v2: (no changes)
    
    v2 -> v3:
     * Use enumerate_cpus() and error_report() for error message
     * Simplify logic using bitmap_full()
    
    v3 -> v4:
     * Clarify error message, mention that all CPUs up to
       maxcpus need to be described in NUMA config
    
    v4 -> v5:
     * Commit log update, to make problem description clearer