On 09/09/2015 01:52 PM, Bharata B Rao wrote:
On Fri, Sep 04, 2015 at 03:31:24PM +1000, David Gibson wrote:
On Thu, Aug 06, 2015 at 10:57:07AM +0530, Bharata B Rao wrote:
CPUState *cpu gets added to the cpus list during cpu_exec_init(). It
should be removed from cpu_exec_exit().
cpu_exec_init() is called from generic CPU::instance_finalize and some
archs like PowerPC call it from CPU unrealizefn. So ensure that we
dequeue the cpu only once.
Instead of introducing a new field CPUState.queued, I could have used
CPUState.cpu_index to check if the cpu is already dequeued from the list.
Since that doesn't work for CONFIG_USER_ONLY, I had to add a new field.
Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com>
This seems reasonable to me, but I'm wondering how x86 cpu hotplug /
unplug is working without it.
x86 hotplug/unplug code currently resides in Zhu's git tree
(git://github.com/zhugh/qemu). They are removing the CPU from the list
explicitly in x86 CPU's instance_finalize routine.
Sorry, my git tree is git://github.com/zhuguihua/qemu
Now there was no progress about topology, so we don't know what will happen
in x86. I am not sure whether we will take this method finally.
Thanks,
Zhu
Since we add CPU to the list in cpu_exec_init(), I thought it makes
sense to remove it in cpu_exec_exit().
May be it makes sense to separately purse this patch and the next one
so that other archs are also taken into account correctly.
Regards,
Bharata.