[Qemu-devel] [PATCH v3 00/21] s390x cleanups and CPU hotplug via device_add

David Hildenbrand posted 21 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170907201335.13956-1-david@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
dump.c                             |   1 -
exec.c                             |   1 -
hw/s390x/Makefile.objs             |   1 -
hw/s390x/s390-virtio-ccw.c         | 245 +++++++++++++++++++++++++++++++++++--
hw/s390x/s390-virtio-hcall.c       |   2 +-
hw/s390x/s390-virtio-hcall.h       |  21 ++++
hw/s390x/s390-virtio.c             |  37 ------
hw/s390x/s390-virtio.h             |  35 ------
hw/s390x/sclp.c                    |  34 +++--
include/hw/s390x/s390-virtio-ccw.h |   2 +
include/hw/s390x/sclp.h            |   2 +
include/qom/cpu.h                  |   6 +-
qapi-schema.json                   |  16 +++
target/i386/arch_dump.c            |   1 -
target/i386/arch_memory_mapping.c  |   1 -
target/i386/svm_helper.c           |   1 -
target/ppc/arch_dump.c             |   1 -
target/s390x/arch_dump.c           |   1 -
target/s390x/cpu-qom.h             |   4 +-
target/s390x/cpu.c                 | 101 ++++++---------
target/s390x/cpu.h                 |  17 +--
target/s390x/cpu_models.c          |  58 ++++++---
target/s390x/diag.c                |   1 +
target/s390x/excp_helper.c         |   5 +-
target/s390x/helper.c              |  47 +------
target/s390x/internal.h            |   1 -
target/s390x/kvm.c                 |   1 +
target/s390x/misc_helper.c         |  21 ++--
target/s390x/translate.c           |   5 +-
29 files changed, 400 insertions(+), 269 deletions(-)
create mode 100644 hw/s390x/s390-virtio-hcall.h
delete mode 100644 hw/s390x/s390-virtio.h
[Qemu-devel] [PATCH v3 00/21] s390x cleanups and CPU hotplug via device_add
Posted by David Hildenbrand 6 years, 6 months ago
The first patches are a bunch of cleanups. I decided to go the
extra mile and implement CPU hotplug via "device_add", as well as
"query-hotpluggable-cpus".

On s390x, only complete cores can be plugged. CPU hot unplug is currently
not supported by the architecture.

In contrast to v2, this series now also adds support for hotplugging CPUs
in random core-id order (last two patches). We once hat a KVM bug
preventing this, but the stable patch should now be included in relevant
places - 152e9f65d66f ("KVM: s390: fix wrong lookup of VCPUs by array
index"). Current tooling will plug them in sequential order anyway, so
it should not hurt.

I am pretty sure now that this patch series won't grow even more :)


v2 -> v3:
* "exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly"
 - dropped removal of one unrelated include
* "s390x: move subsystem_reset() to s390-virtio-ccw.h"
 - previously "s390x: move two function declarations to s390-virtio-ccw.h"
 - as Thomas requested, s390_cpu_addr2state() will be later moved to cpu.c
* "s390x: move sclp_service_call() to sclp.h"
 - previously "s390x: move sclp_service_call() to interrupt.c"
 - only move the declaration and make it compile
* "s390x: allow only 1 CPU with TCG"
 - switch to simple ifdef. Let's see what people think about this one :)
* "s390x: print CPU definitions in sorted order"
 - fix host model getting reported as static :(
* "s390x: CPU hot unplug via device_del cannot work"
 - use the term "currently" instead of "never"
* "s390x: implement query-hotpluggable-cpus"
 - as requested by Thomas, moving s390_cpu_addr2state() to cpu.c
* added "s390x: generate sclp cpu information from possible_cpus"
* added "s390x: allow CPU hotplug in random core-id order"


David Hildenbrand (21):
  exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly
  cpu: drop old comments describing members
  s390x: get rid of s390-virtio.c
  s390x: rename s390-virtio.h to s390-virtio-hcall.h
  target/s390x: move typedef of S390CPU to its definition
  s390x: move s390_virtio_hypercall() to s390-virtio-hcall.h
  s390x: move subsystem_reset() to s390-virtio-ccw.h
  s390x: move sclp_service_call() to sclp.h
  target/s390x: use trigger_pgm_exception() in
    s390_cpu_handle_mmu_fault()
  target/s390x: use program_interrupt() in per_check_exception()
  s390x: allow only 1 CPU with TCG
  target/s390x: set cpu->id for linux user when realizing
  target/s390x: use "core-id" for cpu number/address/id handling
  target/s390x: rename next_cpu_id to next_core_id
  s390x: print CPU definitions in sorted order
  s390x: allow cpu hotplug via device_add
  s390x: CPU hot unplug via device_del cannot work for now
  s390x: implement query-hotpluggable-cpus
  s390x: get rid of cpu_s390x_create()
  s390x: generate sclp cpu information from possible_cpus
  s390x: allow CPU hotplug in random core-id order

 dump.c                             |   1 -
 exec.c                             |   1 -
 hw/s390x/Makefile.objs             |   1 -
 hw/s390x/s390-virtio-ccw.c         | 245 +++++++++++++++++++++++++++++++++++--
 hw/s390x/s390-virtio-hcall.c       |   2 +-
 hw/s390x/s390-virtio-hcall.h       |  21 ++++
 hw/s390x/s390-virtio.c             |  37 ------
 hw/s390x/s390-virtio.h             |  35 ------
 hw/s390x/sclp.c                    |  34 +++--
 include/hw/s390x/s390-virtio-ccw.h |   2 +
 include/hw/s390x/sclp.h            |   2 +
 include/qom/cpu.h                  |   6 +-
 qapi-schema.json                   |  16 +++
 target/i386/arch_dump.c            |   1 -
 target/i386/arch_memory_mapping.c  |   1 -
 target/i386/svm_helper.c           |   1 -
 target/ppc/arch_dump.c             |   1 -
 target/s390x/arch_dump.c           |   1 -
 target/s390x/cpu-qom.h             |   4 +-
 target/s390x/cpu.c                 | 101 ++++++---------
 target/s390x/cpu.h                 |  17 +--
 target/s390x/cpu_models.c          |  58 ++++++---
 target/s390x/diag.c                |   1 +
 target/s390x/excp_helper.c         |   5 +-
 target/s390x/helper.c              |  47 +------
 target/s390x/internal.h            |   1 -
 target/s390x/kvm.c                 |   1 +
 target/s390x/misc_helper.c         |  21 ++--
 target/s390x/translate.c           |   5 +-
 29 files changed, 400 insertions(+), 269 deletions(-)
 create mode 100644 hw/s390x/s390-virtio-hcall.h
 delete mode 100644 hw/s390x/s390-virtio.h

-- 
2.13.5