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.

This job is based on Chen Fan's previous "cpu-del" patchset:
https://lists.nongnu.org/archive/html/qemu-devel/2013-12/msg04266.html

And it depends on the previous "device_add foo-x86_64-cpu" patchset:
https://lists.nongnu.org/archive/html/qemu-devel/2014-06/msg06690.html

Chen Fan (4):
  x86: add x86_cpu_unrealizefn() for cpu apic remove
  qom cpu: rename variable 'cpu_added_notifier' to
    'cpu_hotplug_notifier'
  i386: implement pc interface cpu_common_unrealizefn() in qom/cpu.c
  cpu hotplug: implement function cpu_status_write() for vcpu ejection

Gu Zheng (3):
  i386: add cpu device_del support
  qom cpu: add UNPLUG cpu notify support
  cpus: reclaim allocated vCPU objects

 cpus.c                            |   44 ++++++++++++++++++++++++
 hw/acpi/cpu_hotplug.c             |   55 ++++++++++++++++++++++++++++---
 hw/acpi/ich9.c                    |   13 ++++---
 hw/acpi/piix4.c                   |   21 +++++++-----
 hw/i386/acpi-dsdt-cpu-hotplug.dsl |    6 +++-
 hw/i386/kvm/apic.c                |    8 ++++
 hw/i386/pc.c                      |    2 +-
 hw/intc/apic.c                    |   10 +++++
 hw/intc/apic_common.c             |   23 ++++++++++++-
 include/hw/acpi/cpu_hotplug.h     |   14 +++++++-
 include/hw/acpi/ich9.h            |    2 +-
 include/hw/cpu/icc_bus.h          |    1 +
 include/hw/i386/apic_internal.h   |    1 +
 include/qom/cpu.h                 |    9 +++++
 include/sysemu/kvm.h              |    1 +
 include/sysemu/sysemu.h           |    2 +-
 kvm-all.c                         |   57 +++++++++++++++++++++++++++++++-
 qom/cpu.c                         |   27 ++++++++++++---
 target-i386/cpu-qom.h             |    1 +
 target-i386/cpu.c                 |   66 +++++++++++++++++++++++++++++++++++++
 20 files changed, 332 insertions(+), 31 deletions(-)

-- 
1.7.7


Reply via email to