mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
numa: consolidate cpu_preplug fixups/checks for pc/arm/spapr
Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Message-Id: <1496161442-96665-2-git-send-email-imammedo@redhat.com> [ehabkost: Fix indentation] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
1f43571604
commit
a0ceb640d0
5 changed files with 28 additions and 46 deletions
23
numa.c
23
numa.c
|
@ -533,6 +533,29 @@ void parse_numa_opts(MachineState *ms)
|
|||
}
|
||||
}
|
||||
|
||||
void numa_cpu_pre_plug(const CPUArchId *slot, DeviceState *dev, Error **errp)
|
||||
{
|
||||
int mapped_node_id; /* set by -numa option */
|
||||
int node_id = object_property_get_int(OBJECT(dev), "node-id", &error_abort);
|
||||
|
||||
/* by default CPUState::numa_node was 0 if it wasn't set explicitly
|
||||
* TODO: make it error when incomplete numa mapping support is removed
|
||||
*/
|
||||
mapped_node_id = slot->props.node_id;
|
||||
if (!slot->props.has_node_id) {
|
||||
mapped_node_id = 0;
|
||||
}
|
||||
|
||||
if (node_id == CPU_UNSET_NUMA_NODE_ID) {
|
||||
/* due to bug in libvirt, it doesn't pass node-id from props on
|
||||
* device_add as expected, so we have to fix it up here */
|
||||
object_property_set_int(OBJECT(dev), mapped_node_id, "node-id", errp);
|
||||
} else if (node_id != mapped_node_id) {
|
||||
error_setg(errp, "node-id=%d must match numa node specified "
|
||||
"with -numa option", node_id);
|
||||
}
|
||||
}
|
||||
|
||||
static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
|
||||
const char *name,
|
||||
uint64_t ram_size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue