s/cpus/cpu/ Am 24.06.2015 um 15:53 schrieb Andreas Färber: > Am 24.06.2015 um 04:31 schrieb Peter Crosthwaite: >> From: Bharata B Rao <bhar...@linux.vnet.ibm.com> >> >> Currently CPUState.cpu_index is monotonically increasing and a newly
CPUState::cpu_index >> created CPU always gets the next higher index. The next available >> index is calculated by counting the existing number of CPUs. This is >> fine as long as we only add CPUs, but there are architectures which >> are starting to support CPU removal too. For an architecture like PowerPC >> which derives its CPU identifier (device tree ID) from cpu_index, the >> existing logic of generating cpu_index values causes problems. >> >> With the currently proposed method of handling vCPU removal by parking >> the vCPU fd in QEMU >> (Ref: http://lists.gnu.org/archive/html/qemu-devel/2015-02/msg02604.html), >> generating cpu_index this way will not work for PowerPC. >> >> This patch changes the way cpu_index is handed out by maintaining >> a bit map of the CPUs that tracks both addition and removal of CPUs. >> >> The CPU bitmap allocation logic is part of cpu_exec_init() which is >> called by instance_init routines of various CPU targets. Newly added >> cpu_exec_exit() API handles the deallocation part and this routine is >> called from generic CPU::instance_finalize(). (Here it's in TypeInfo:: actually.) >> >> Note: This new CPU enumeration is for !CONFIG_USER_ONLY only. >> CONFIG_USER_ONLY continues to have the old enumeration logic. >> >> Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> >> Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> >> Reviewed-by: Igor Mammedov <imamm...@redhat.com> >> Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> >> Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> >> Acked-by: Paolo Bonzini <pbonz...@redhat.com> >> Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> >> --- >> exec.c | 55 >> ++++++++++++++++++++++++++++++++++++++++++++++++++----- >> include/qom/cpu.h | 1 + >> qom/cpu.c | 7 +++++++ >> 3 files changed, 58 insertions(+), 5 deletions(-) > > Doesn't apply on my tree, trying manually... Caused by exec.c -> qom/cpu.c code movements from Eduardo in my queue. Applied to qom-cpu. Thanks, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Dilip Upmanyu, Graham Norton; HRB 21284 (AG Nürnberg)