Create as many CPU socket objects as necessary to contain the max_cpus. Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> --- vl.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/vl.c b/vl.c index e656f53..83d08c6 100644 --- a/vl.c +++ b/vl.c @@ -124,6 +124,7 @@ int main(int argc, char **argv) #include "crypto/init.h" #include "sysemu/replay.h" #include "qapi/qmp/qerror.h" +#include "hw/cpu/socket.h" #define MAX_VIRTIO_CONSOLES 1 #define MAX_SCLP_CONSOLES 1 @@ -3014,6 +3015,7 @@ int main(int argc, char **argv, char **envp) FILE *vmstate_dump_file = NULL; Error *main_loop_err = NULL; Error *err = NULL; + int sockets; qemu_init_cpu_loop(); qemu_mutex_lock_iothread(); @@ -4154,6 +4156,17 @@ int main(int argc, char **argv, char **envp) } /* + * Create CPU socket objects which house CPU cores. + */ + sockets = DIV_ROUND_UP(max_cpus, smp_cores * smp_threads); + for (i = 0; i < sockets; i++) { + char id[32]; + + snprintf(id, 32, "" TYPE_CPU_SOCKET "%d", i); + object_add(TYPE_CPU_SOCKET, id, NULL, NULL, &error_abort); + } + + /* * Get the default machine options from the machine if it is not already * specified either by the configuration file or by the command line. */ -- 2.1.0