Claudio Fontana <cfont...@suse.de> writes:
> move the call to qemu_init_vcpu inside cpu_common_realizefn, > so it does not need to be done explicitly in each target cpu. > > Despite this, the way cpu realize is done continues to be not ideal; > > ideally the cpu_list_add would be done in common_cpu, > and in this case we could avoid even more redundant open coded > additional calls in target/xxx/cpu.c, > > but this cannot happen because target cpu code, plugins, etc > now all came to rely on cpu->index > (which is updated in cpu_list_add), since no particular order > was defined previously, so we are stuck with the freak call > order for the target cpu realizefn. > > After this patch the target/xxx/cpu.c realizefn body becomes: > > void mycpu_realizefn(DeviceState *dev, Error **errp) > { > /* ... */ > cpu_exec_realizefn(CPU_STATE(dev), errp); > > /* ... anything that needs done pre-qemu_vcpu_init */ > > xcc->parent_realize(dev, errp); /* does qemu_vcpu_init */ > > /* ... anything that needs to be done after qemu_vcpu_init */ > } Uggh, introducing a magic order seems like inviting trouble for later on. Is there anyway we can improve things? Paolo? -- Alex Bennée