On Sat, Oct 15, 2016 at 12:52:46AM +0200, Laurent Vivier wrote: > Since commit 42ecaba ("target-i386: Call cpu_exec_init() on realize"), > , commit 6dd0f83 ("target-ppc: Move cpu_exec_init() call to realize > function"), > and commit c6644fc ("s390x/cpu: Get rid of side effects when creating a > vcpu"), > cpu_exec_init() has been moved to realize function for some architectures > to implement CPU htoplug. This allows any failures from cpu_exec_init() to be > handled appropriately. > > This series tries to do the same work for all the other CPUs. > > But as the ARM Virtual Machine ("virt") needs the "memory" property of the CPU > in the machine init function (the "memory" property is created in > cpu_exec_init() we want to move to the realize part), split cpu_exec_init() in > two parts: a realize part (cpu_exec_realizefn(), adding the CPU in the > environment) and an init part (cpu_exec_initfn(), initializing the CPU, like > adding the "memory" property). To mirror the realize part, add an unrealize > part, and remove the cpu_exec_exit() call from the finalize part. > > This also allows to remove all the "cannot_destroy_with_object_finalize_yet" > properties from the CPU device class.
This is looking good to me - the v3 re-org has made it quite a bit easier to follow. Whose tree should this go via? > v3: > - reorganize the series in 3 patches: > 1- split cpu_exec_init() and call the init part from > cpu_common_initfn() > 2- move all the cpu_exec_realize() calls to the > XXX_cpu_realizefn() functions > 3- create a cpu_common_unrealizefn() function > and call the cpu_exec_unrealize() function from here, > except for ppc64 and i386 that have their own XX_cpu_unrealizefn() > functions > - rename cpu_exec_init(), cpu_exec_realize(), cpu_exec_unrealize() > to cpu_exec_initfn(), cpu_exec_realizefn() and cpu_exec_unrealizefn(), > - move cpu_exec_unrealizefn() to the device class unrealize > and declare it in qom/cpu.h instead of exec/exec-all.h > > v2: > - rename cpu_exec_exit() as cpu_exec_unrealize(), > as it un-does what cpu_exec_realize() does, > - remove cpu_exec_exit() from ppc_cpu_unrealizefn() as > it is called from cpu_common_finalize(), > - add a patch to move all cpu_exec_init() from > all XX_cpu_initfn() to cpu_common_initfn(), > - arm: move setting of cpu->mp_affinity to > arm_cpu_realizefn() as the cpu_index is now set in > cpu_exec_realizefn(). > - update some commit messages > > Laurent Vivier (3): > exec: split cpu_exec_init() > exec: rename cpu_exec_init() as cpu_exec_realizefn() > exec: call cpu_exec_exit() from a CPU unrealize common function > > exec.c | 12 +++++++----- > include/exec/exec-all.h | 1 - > include/qom/cpu.h | 4 +++- > qom/cpu.c | 10 +++++++++- > target-alpha/cpu.c | 15 +++++++-------- > target-arm/cpu.c | 39 +++++++++++++++++---------------------- > target-cris/cpu.c | 15 +++++++-------- > target-i386/cpu.c | 13 +++++++------ > target-lm32/cpu.c | 15 +++++++-------- > target-m68k/cpu.c | 15 +++++++-------- > target-microblaze/cpu.c | 14 +++++++------- > target-mips/cpu.c | 15 +++++++-------- > target-moxie/cpu.c | 15 +++++++-------- > target-openrisc/cpu.c | 15 +++++++-------- > target-ppc/translate_init.c | 4 ++-- > target-s390x/cpu.c | 8 +------- > target-sh4/cpu.c | 15 +++++++-------- > target-sparc/cpu.c | 18 +++++++++--------- > target-tilegx/cpu.c | 15 +++++++-------- > target-tricore/cpu.c | 15 +++++++-------- > target-unicore32/cpu.c | 18 +++++++++--------- > target-xtensa/cpu.c | 15 +++++++-------- > 22 files changed, 148 insertions(+), 158 deletions(-) > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature