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

David Hildenbrand posted 22 patches 6 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170913132417.24384-1-david@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
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
[Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add
Posted by David Hildenbrand 6 years, 7 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.

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

-- 
2.13.5


Re: [Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add
Posted by Cornelia Huck 6 years, 7 months ago
On Wed, 13 Sep 2017 15:23:55 +0200
David Hildenbrand <david@redhat.com> wrote:

> 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.

Thanks, applied.

Re: [Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add
Posted by Markus Armbruster 6 years, 6 months ago
Cornelia Huck <cohuck@redhat.com> writes:

> On Wed, 13 Sep 2017 15:23:55 +0200
> David Hildenbrand <david@redhat.com> wrote:
>
>> 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.
>
> Thanks, applied.

Please squash in the one-liner fix I asked for in my (late!) review of
PATCH 18.

Re: [Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add
Posted by Cornelia Huck 6 years, 6 months ago
On Mon, 02 Oct 2017 09:47:58 +0200
Markus Armbruster <armbru@redhat.com> wrote:

> Cornelia Huck <cohuck@redhat.com> writes:
> 
> > On Wed, 13 Sep 2017 15:23:55 +0200
> > David Hildenbrand <david@redhat.com> wrote:
> >  
> >> 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.  
> >
> > Thanks, applied.  
> 
> Please squash in the one-liner fix I asked for in my (late!) review of
> PATCH 18.

Sadly, the review was a bit too late (already merged)...

Re: [Qemu-devel] [PATCH v5 00/22] s390x cleanups and CPU hotplug via device_add
Posted by David Hildenbrand 6 years, 5 months ago
On 13.09.2017 15:23, David Hildenbrand wrote:
> 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.
> 

Just played with libvirt. It seems to automatically use the new
interface. Works great for me (including migration).


-- 

Thanks,

David