• I
    numa: move source of default CPUs to NUMA node mapping into boards · ea089eeb
    Igor Mammedov 提交于
    Originally CPU threads were by default assigned in
    round-robin fashion. However it was causing issues in
    guest since CPU threads from the same socket/core could
    be placed on different NUMA nodes.
    Commit fb43b73b (pc: fix default VCPU to NUMA node mapping)
    fixed it by grouping threads within a socket on the same node
    introducing cpu_index_to_socket_id() callback and commit
    20bb648d (spapr: Fix default NUMA node allocation for threads)
    reused callback to fix similar issues for SPAPR machine
    even though socket doesn't make much sense there.
    
    As result QEMU ended up having 3 default distribution rules
    used by 3 targets /virt-arm, spapr, pc/.
    
    In effort of moving NUMA mapping for CPUs into possible_cpus,
    generalize default mapping in numa.c by making boards decide
    on default mapping and let them explicitly tell generic
    numa code to which node a CPU thread belongs to by replacing
    cpu_index_to_socket_id() with @cpu_index_to_instance_props()
    which provides default node_id assigned by board to specified
    cpu_index.
    Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
    Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
    Message-Id: <1494415802-227633-2-git-send-email-imammedo@redhat.com>
    Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
    ea089eeb
pc.c 72.5 KB