From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ys2s3-000186-RB for qemu-devel@nongnu.org; Tue, 12 May 2015 01:36:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ys2s0-0004rF-CV for qemu-devel@nongnu.org; Tue, 12 May 2015 01:36:47 -0400 Received: from e28smtp04.in.ibm.com ([122.248.162.4]:58750) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ys2rz-0004qn-Ov for qemu-devel@nongnu.org; Tue, 12 May 2015 01:36:44 -0400 Received: from /spool/local by e28smtp04.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 12 May 2015 11:06:41 +0530 Received: from d28relay01.in.ibm.com (d28relay01.in.ibm.com [9.184.220.58]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 88E16E004C for ; Tue, 12 May 2015 11:09:35 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay01.in.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t4C5aUEX5505344 for ; Tue, 12 May 2015 11:06:31 +0530 Received: from d28av05.in.ibm.com (localhost [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t4C5aU3n007569 for ; Tue, 12 May 2015 11:06:30 +0530 From: Bharata B Rao Date: Tue, 12 May 2015 11:06:23 +0530 Message-Id: <1431408986-18323-1-git-send-email-bharata@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v2 0/3] Bitmap based CPU enumeration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: zhugh.fnst@cn.fujitsu.com, ehabkost@redhat.com, agraf@suse.de, Bharata B Rao , imammedo@redhat.com, afaerber@suse.de, david@gibson.dropbear.id.au This patch changes the way cpu_index is handed out to newly created CPUs by tracking the allocted CPUs in a bitmap. More information and the need for this patch is described in patch 2/3 of this series. These generic changes are needed to support CPU hot plug/unplug on PowerPC. An open question is about handling of holes correctly in the allocated bitmap to support VM migration after CPU unplug. This was briefly discussed here: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg00560.html Should cpu_exec_init() API support specifying of a particular cpu_index in addition to returning the next available cpu_index by default ? I know that QEMU cmdline semantics for CPU device add/delele haven't been defined yet, but should we now make provision in cpu_exec_init() to allocate the required cpu_index ? Changes in v2 ------------- Following changes to address Eduardo's comments: - Call cpu_exec_init() from generic CPU::instance_finalize() instead of touching all archs. - Initialize cpu_index to -1 from generic CPU::instance_init(). - Callers of cpu_exec_init() now pass error_abort argument instead of NULL. - Consolidate the older CPU enumeration code for CONFIG_USER_ONLY under cpu_get_free_index(). v1: https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg01385.html v0: https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg02950.html Bharata B Rao (3): cpus: Add Error argument to cpu_exec_init() cpus: Convert cpu_index into a bitmap ppc: Move cpu_exec_init() call to realize function exec.c | 57 ++++++++++++++++++++++++++++++++++++++++----- include/exec/exec-all.h | 2 +- include/qom/cpu.h | 1 + qom/cpu.c | 7 ++++++ target-alpha/cpu.c | 2 +- target-arm/cpu.c | 2 +- target-cris/cpu.c | 2 +- target-i386/cpu.c | 2 +- target-lm32/cpu.c | 2 +- target-m68k/cpu.c | 2 +- target-microblaze/cpu.c | 2 +- target-mips/cpu.c | 2 +- target-moxie/cpu.c | 2 +- target-openrisc/cpu.c | 2 +- target-ppc/translate_init.c | 9 +++++-- target-s390x/cpu.c | 2 +- target-sh4/cpu.c | 2 +- target-sparc/cpu.c | 2 +- target-tricore/cpu.c | 2 +- target-unicore32/cpu.c | 2 +- target-xtensa/cpu.c | 2 +- 21 files changed, 83 insertions(+), 25 deletions(-) -- 2.1.0