cpu: Reclaim vCPU objects
commit4c055ab54fae39b6329c57bcb5334d59b920463e
authorGu Zheng <guz.fnst@cn.fujitsu.com>
Thu, 12 May 2016 03:48:13 +0000 (12 09:18 +0530)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 30 May 2016 04:03:59 +0000 (30 14:03 +1000)
treed1bb4c50138f6283bda97737937c32733f943414
parent9dfeca7c6b1d3a8f36531bbbac0322a9907bcd86
cpu: Reclaim vCPU objects

In order to deal well with the kvm vcpus (which can not be removed without any
protection), we do not close KVM vcpu fd, just record and mark it as stopped
into a list, so that we can reuse it for the appending cpu hot-add request if
possible. It is also the approach that kvm guys suggested:
https://www.mail-archive.com/kvm@vger.kernel.org/msg102839.html

Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
               [- Explicit CPU_REMOVE() from qemu_kvm/tcg_destroy_vcpu()
                  isn't needed as it is done from cpu_exec_exit()
                - Use iothread mutex instead of global mutex during
                  destroy
                - Don't cleanup vCPU object from vCPU thread context
                  but leave it to the callers (device_add/device_del)]
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
cpus.c
include/qom/cpu.h
include/sysemu/kvm.h
kvm-all.c
kvm-stub.c