Skip to content

s390x cleanups and CPU hotplug via device_add

David Hildenbrand qemu-devel 5 versions – Applied

Status from this message: Thanks, applied.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest22 patches 33 repliesApplied
  2. v421 patches 17 repliesSuperseded
  3. v321 patches 15 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v219 patches45 repliesSuperseded
v111 patches41 repliesSuperseded

Changes in v5 from the cover letter

* Only moving code around, no conceptual changes.
* "s390x: allow only 1 CPU with TCG"
- Drop the ifdef stuff again.
* "s390x: implement query-hotpluggable-cpus"
- Don't move s390_cpu_addr2state(), we can clean that up later.
- Moved dropping "cpu_states" to next patch.
- Drop s390_find_cpu_slot().
* "s390x: get rid of cpu_states and use possible_cpus instead"
- Added as requested by Igor.

Patches in v5 Applied

#Subject and filesSizeRepliesApplied
1/22exec, dump, i386, ppc, s390x: don't include exec/cpu-all.h explicitlydump.c exec.c target/i386/arch_dump.c +4 more+0 -70 replies
2/22cpu: drop old comments describing membersinclude/qom/cpu.h+3 -30 replies
3/22s390x: get rid of s390-virtio.chw/s390x/Makefile.objs hw/s390x/s390-virtio-ccw.c hw/s390x/s390-virtio.c +1 more+156 -542 replies
4/22s390x: rename s390-virtio.h to s390-virtio-hcall.hhw/s390x/s390-virtio-ccw.c hw/s390x/s390-virtio-hcall.c hw/s390x/s390-virtio-hcall.h+6 -60 replies
5/22s390x: move s390_virtio_hypercall() to s390-virtio-hcall.hhw/s390x/s390-virtio-hcall.h target/s390x/cpu.h target/s390x/kvm.c +1 more+3 -10 replies
6/22s390x: move subsystem_reset() to s390-virtio-ccw.hinclude/hw/s390x/s390-virtio-ccw.h target/s390x/cpu.h target/s390x/diag.c+3 -10 replies
7/22target/s390x: move some s390x typedefs to cpu-qom.htarget/s390x/cpu-qom.h target/s390x/cpu.h target/s390x/cpu_models.h+11 -73 replies
8/22s390x: move sclp_service_call() to sclp.hinclude/hw/s390x/sclp.h target/s390x/cpu.h target/s390x/misc_helper.c+3 -14 replies
9/22target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault()target/s390x/excp_helper.c+1 -20 replies
10/22target/s390x: use program_interrupt() in per_check_exception()target/s390x/misc_helper.c+9 -60 replies
11/22s390x: allow only 1 CPU with TCGhw/s390x/s390-virtio-ccw.c+6 -05 replies
12/22target/s390x: set cpu->id for linux user when realizingtarget/s390x/cpu.c+4 -70 replies
13/22target/s390x: use "core-id" for cpu number/address/id handlinghw/s390x/s390-virtio-ccw.c target/s390x/cpu.c target/s390x/cpu.h +5 more+30 -660 replies
14/22target/s390x: rename next_cpu_id to next_core_idtarget/s390x/cpu-qom.h target/s390x/cpu.c+6 -70 replies
15/22s390x: print CPU definitions in sorted ordertarget/s390x/cpu_models.c+41 -150 replies
16/22s390x: allow cpu hotplug via device_addtarget/s390x/cpu.c+1 -03 replies
17/22s390x: CPU hot unplug via device_del cannot work for nowhw/s390x/s390-virtio-ccw.c+10 -01 reply
18/22s390x: implement query-hotpluggable-cpushw/s390x/s390-virtio-ccw.c qapi-schema.json+57 -09 replies
19/22s390x: get rid of cpu_states and use possible_cpus insteadhw/s390x/s390-virtio-ccw.c+10 -261 reply
20/22s390x: get rid of cpu_s390x_create()hw/s390x/s390-virtio-ccw.c target/s390x/cpu.h target/s390x/helper.c +1 more+30 -470 replies
21/22s390x: generate sclp cpu information from possible_cpushw/s390x/sclp.c+14 -200 replies
22/22s390x: allow CPU hotplug in random core-id ordertarget/s390x/cpu.c+1 -71 reply

Reviews trailers per patch

20 of 22 patches have a Reviewed-by or Acked-by.

PatchThomas HuthCornelia HuckChristian BorntraegerMatthew RosatoIgor Mammedov
1/22R-b
2/22A-b
3/22R-b A-b
4/22R-b A-b
5/22R-b
6/22R-b A-b
7/22R-b
8/22R-b
9/22R-b
10/22
11/22T-b R-b
12/22R-b R-b
13/22R-b
14/22R-b
15/22A-b
16/22R-b
17/22R-b
18/22A-b
19/22R-b
20/22A-b
21/22
22/22R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v5 thread

Cover letter [Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add

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.

Support for hotplugging CPUs in random core-id order (last two patches) is added. 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.

v4 -> v5:
* Only moving code around, no conceptual changes.
* "s390x: allow only 1 CPU with TCG"
- Drop the ifdef stuff again.
* "s390x: implement query-hotpluggable-cpus"
- Don't move s390_cpu_addr2state(), we can clean that up later.
- Moved dropping "cpu_states" to next patch.
- Drop s390_find_cpu_slot().
* "s390x: get rid of cpu_states and use possible_cpus instead"
- Added as requested by Igor.

David Hildenbrand (22):
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
s390x: move s390_virtio_hypercall() to s390-virtio-hcall.h
s390x: move subsystem_reset() to s390-virtio-ccw.h target/s390x: move some s390x typedefs to cpu-qom.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_states and use possible_cpus instead
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         | 239 +++++++++++++++++++++++++++++++++++--
 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             |   7 +-
 target/s390x/cpu.c                 |  85 ++++---------
 target/s390x/cpu.h                 |  13 +-
 target/s390x/cpu_models.c          |  58 ++++++---
 target/s390x/cpu_models.h          |   8 +-
 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 +-
 30 files changed, 388 insertions(+), 266 deletions(-)
 create mode 100644 hw/s390x/s390-virtio-hcall.h
 delete mode 100644 hw/s390x/s390-virtio.h
Signature · 1 line
2.13.5