From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Gzf-0003p1-PE for qemu-devel@nongnu.org; Thu, 08 Jan 2015 12:35:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y9GzU-0006XD-W7 for qemu-devel@nongnu.org; Thu, 08 Jan 2015 12:35:35 -0500 Received: from e39.co.us.ibm.com ([32.97.110.160]:44469) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9GzU-0006Wj-LG for qemu-devel@nongnu.org; Thu, 08 Jan 2015 12:35:24 -0500 Received: from /spool/local by e39.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 8 Jan 2015 10:35:24 -0700 From: Michael Roth Date: Thu, 8 Jan 2015 11:33:32 -0600 Message-Id: <1420738472-23267-29-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1420738472-23267-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1420738472-23267-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 28/88] smbios: Fix assertion on socket count calculation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org From: Eduardo Habkost QEMU currently allows the number of VCPUs to not be a multiple of the number of threads per socket, but the smbios socket count calculation introduced by commit c97294ec1b9e36887e119589d456557d72ab37b5 doesn't take that into account, triggering an assertion. e.g.: $ ./x86_64-softmmu/qemu-system-x86_64 -smp 4,sockets=2,cores=6,threads=1 qemu-system-x86_64: /home/ehabkost/rh/proj/virt/qemu/hw/i386/smbios.c:825: smbios_get_tables: Assertion `smbios_smp_sockets >= 1' failed. Aborted (core dumped) Socket count calculation doesn't belong to smbios.c and should eventually be moved to the main SMP topology configuration code. But while we don't move the code, at least make it correct by rounding up the division. Cc: Gabriel Somlo Cc: qemu-stable@nongnu.org Signed-off-by: Eduardo Habkost Reviewed-By: Igor Mammedov Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 7dfddd7f884b6dd2abf230d8fa6c7c83aab4f5ec) Signed-off-by: Michael Roth --- hw/i386/smbios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/smbios.c b/hw/i386/smbios.c index e3fa1b2..0ae5960 100644 --- a/hw/i386/smbios.c +++ b/hw/i386/smbios.c @@ -821,7 +821,7 @@ void smbios_get_tables(uint8_t **tables, size_t *tables_len, smbios_build_type_2_table(); smbios_build_type_3_table(); - smbios_smp_sockets = smp_cpus / (smp_cores * smp_threads); + smbios_smp_sockets = DIV_ROUND_UP(smp_cpus, smp_cores * smp_threads); assert(smbios_smp_sockets >= 1); for (i = 0; i < smbios_smp_sockets; i++) { -- 1.9.1