qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] qemu will core dump with "-smp 254, sockets=2,


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] qemu will core dump with "-smp 254, sockets=2, cores=3, threads=2"
Date: Sat, 14 Dec 2013 19:10:35 +0000

On 14 December 2013 17:21, lijun <address@hidden> wrote:
> Hi all,
>     As qemu core dump cause by "sockets=2,cores=3,threads=2", so add this
> patch to check whether cores and threads is a power of 2.
>     The following is the realization of apicid_from_topo_ids function in
> file target-i386/topology.h. It uses shift to get the values of pkg_id and
> core_id. nr_cores and nr_threads is related to this shift.
> static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
>                                              unsigned nr_threads,
>                                              unsigned pkg_id,
>                                              unsigned core_id,
>                                              unsigned smt_id)
> {
>     return (pkg_id  << apicid_pkg_offset(nr_cores, nr_threads)) |
>            (core_id << apicid_core_offset(nr_cores, nr_threads)) |
>            smt_id;
> }
> ----
> So should add a check for smp_cores and smp_threads in smp_parse function in
> file vl.c. Check whether smp_cores and smp_threads is a power of 2, so
> nr_cores and nr_threads is a power of 2.  When return from
> apicid_from_topo_ids function, apic_id and id could get the correct
> values(apic_id is in file "hw/i386/acpi-build.c" and id is in file
> "hw/acpi/piix4.c") .

vl.c is cross platform code so I'm not sure it's the right place to make
this check. x86 ACPI may not be able to handle a non-power-of-2
number of cores in a socket, but it's a v alid ARM SMP configuration,
for instance.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]