On 3/9/20 9:17 AM, Igor Mammedov wrote:
> On Tue, 03 Mar 2020 13:57:18 -0600
> Babu Moger <babu.mo...@amd.com> wrote:
>
>> Store the smp sockets in CpuTopology. The socket information required to
>> build the apic id in EPYC mode. Right now socket information is not passed
>> to down when decoding the apic id. Add the socket information here.
>>
>> Signed-off-by: Babu Moger <babu.mo...@amd.com>
>> Reviewed-by: Eduardo Habkost <ehabk...@redhat.com>
>> Reviewed-by: Igor Mammedov <imamm...@redhat.com>
>> ---
>> hw/core/machine.c | 1 +
>> hw/i386/pc.c | 1 +
>> include/hw/boards.h | 2 ++
>> vl.c | 1 +
>
> this has been moved to softmmu, so patch needs to rebased against current
> master
Sure. Will do.
>
>> 4 files changed, 5 insertions(+)
>>
>> diff --git a/hw/core/machine.c b/hw/core/machine.c
>> index d8e30e4895..2582ce94f6 100644
>> --- a/hw/core/machine.c
>> +++ b/hw/core/machine.c
>> @@ -728,6 +728,7 @@ static void smp_parse(MachineState *ms, QemuOpts *opts)
>> ms->smp.cpus = cpus;
>> ms->smp.cores = cores;
>> ms->smp.threads = threads;
>> + ms->smp.sockets = sockets;
>> }
>>
>> if (ms->smp.cpus > 1) {
>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>> index ef23ae2af5..68bf08f285 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -780,6 +780,7 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
>> ms->smp.cpus = cpus;
>> ms->smp.cores = cores;
>> ms->smp.threads = threads;
>> + ms->smp.sockets = sockets;
>> x86ms->smp_dies = dies;
>> }
>>
>> diff --git a/include/hw/boards.h b/include/hw/boards.h
>> index fb1b43d5b9..320dd14e02 100644
>> --- a/include/hw/boards.h
>> +++ b/include/hw/boards.h
>> @@ -252,12 +252,14 @@ typedef struct DeviceMemoryState {
>> * @cpus: the number of present logical processors on the machine
>> * @cores: the number of cores in one package
>> * @threads: the number of threads in one core
>> + * @sockets: the number of sockets on the machine
>> * @max_cpus: the maximum number of logical processors on the machine
>> */
>> typedef struct CpuTopology {
>> unsigned int cpus;
>> unsigned int cores;
>> unsigned int threads;
>> + unsigned int sockets;
>> unsigned int max_cpus;
>> } CpuTopology;
>>
>> diff --git a/vl.c b/vl.c
>> index 7dcb0879c4..f77b1285c6 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -3949,6 +3949,7 @@ int main(int argc, char **argv, char **envp)
>> current_machine->smp.max_cpus = machine_class->default_cpus;
>> current_machine->smp.cores = 1;
>> current_machine->smp.threads = 1;
>> + current_machine->smp.sockets = 1;
>>
>> machine_class->smp_parse(current_machine,
>> qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
>>
>