On Wed, Mar 22, 2017 at 02:32:30PM +0100, Igor Mammedov wrote:
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 0cbcbc1..8748d25 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -1554,6 +1554,16 @@ static void virt_set_gic_version(Object *obj, const
> char *value, Error **errp)
> }
> }
>
> +static CpuInstanceProperties
> +virt_cpu_index_to_props(MachineState *ms, unsigned cpu_index)
> +{
> + MachineClass *mc = MACHINE_GET_CLASS(ms);
> + const CPUArchIdList *possible_cpus = mc->possible_cpu_arch_ids(ms);
> +
> + assert(cpu_index < possible_cpus->len);
> + return possible_cpus->cpus[cpu_index].props;;
> +}
> +
> static const CPUArchIdList *virt_possible_cpu_arch_ids(MachineState *ms)
> {
> int n;
> @@ -1573,8 +1583,12 @@ static const CPUArchIdList
> *virt_possible_cpu_arch_ids(MachineState *ms)
> ms->possible_cpus->cpus[n].props.has_thread_id = true;
> ms->possible_cpus->cpus[n].props.thread_id = n;
>
> - /* TODO: add 'has_node/node' here to describe
> - to which node core belongs */
> + /* default distribution of CPUs over NUMA nodes */
> + if (nb_numa_nodes) {
> + /* preset values but do not enable them i.e. 'has_node_id =
> false',
> + * board will enable them if manual mapping wasn't present on
> CLI */
> + ms->possible_cpus->cpus[n].props.node_id = n % nb_numa_nodes;;
extra ;
drew