From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53583) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBIen-0005pq-SL for qemu-devel@nongnu.org; Wed, 14 Jan 2015 02:46:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBIek-0003wy-Bn for qemu-devel@nongnu.org; Wed, 14 Jan 2015 02:46:25 -0500 Received: from [59.151.112.132] (port=14245 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBIej-0003w8-SU for qemu-devel@nongnu.org; Wed, 14 Jan 2015 02:46:22 -0500 From: Zhu Guihua Date: Wed, 14 Jan 2015 15:44:53 +0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 00/11] cpu: add i386 cpu hot remove support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Zhu Guihua , tangchen@cn.fujitsu.com, guz.fnst@cn.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com, anshul.makkar@profitbricks.com, chen.fan.fnst@cn.fujitsu.com, imammedo@redhat.com, afaerber@suse.de This series is based on chen fan's previous i386 cpu hot remove patchset: https://lists.nongnu.org/archive/html/qemu-devel/2013-12/msg04266.html Via implementing ACPI standard methods _EJ0 in ACPI table, after Guest OS remove one vCPU online, the fireware will store removed bitmap to QEMU, then QEMU could know to notify the assigned vCPU of exiting. Meanwhile, intruduce the QOM command 'device_del' to remove vCPU from QEMU itself. The whole work is based on the new hot plug/unplug framework, ,the unplug r= equest callback does the pre-check and send the request, unplug callback does the removal handling. This series depends on tangchen's common hot plug/unplug enhance patchset. [RESEND PATCH v1 0/5] Common unplug and unplug request cb for memory and CP= U hot-unplug https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg00429.html The is the second half of the previous series: = =20 [RFC V2 00/10] cpu: add device_add foo-x86_64-cpu and i386 cpu hot remove s= upport https://lists.nongnu.org/archive/html/qemu-devel/2014-08/msg04779.html = =20 If you want to test the series, you need to apply the 'device_add foo-x86_6= 4-cpu' patchset first: [PATCH v3 0/7] cpu: add device_add foo-x86_64-cpu support https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01552.html --- Changelog since v1: -rebase on the latest version. -delete patch i386/cpu: add instance finalize callback, and put it into pa= tchset [PATCH v3 0/6] cpu: add device_add foo-x86_64-cpu support. Changelog since RFC: -splited the i386 cpu hot remove into single thread. -replaced apic_no with apic_id, so does the related stuff to make it work with arbitrary CPU hotadd. -add the icc_device_unrealize callback to handle apic unrealize. -rework on the new hot plug/unplug platform. --- Chen Fan (2): x86: add x86_cpu_unrealizefn() for cpu apic remove cpu hotplug: implement function cpu_status_write() for vcpu ejection Gu Zheng (5): acpi/cpu: add cpu hot unplug request callback function acpi/piix4: add cpu hot unplug callback support acpi/ich9: add cpu hot unplug support pc: add cpu hot unplug callback support cpus: reclaim allocated vCPU objects Zhu Guihua (4): acpi/piix4: add cpu hot unplug request callback support acpi/ich9: add cpu hot unplug request callback support pc: add cpu hot unplug request callback support acpi/cpu: add cpu hot unplug callback function cpus.c | 44 ++++++++++++++++++++ hw/acpi/cpu_hotplug.c | 88 +++++++++++++++++++++++++++++++++++= +--- hw/acpi/ich9.c | 17 ++++++-- hw/acpi/piix4.c | 12 +++++- hw/core/qdev.c | 2 +- hw/cpu/icc_bus.c | 11 +++++ hw/i386/acpi-dsdt-cpu-hotplug.dsl | 6 ++- hw/i386/kvm/apic.c | 8 ++++ hw/i386/pc.c | 62 +++++++++++++++++++++++++-- hw/intc/apic.c | 10 +++++ hw/intc/apic_common.c | 21 ++++++---- include/hw/acpi/cpu_hotplug.h | 8 ++++ include/hw/cpu/icc_bus.h | 1 + include/hw/i386/apic_internal.h | 1 + include/hw/qdev-core.h | 1 + include/qom/cpu.h | 9 ++++ include/sysemu/kvm.h | 1 + kvm-all.c | 57 ++++++++++++++++++++++++- target-i386/cpu.c | 46 ++++++++++++++++++++ 19 files changed, 378 insertions(+), 27 deletions(-) --=20 1.9.3