qemu/target/s390x
David Hildenbrand a1422723f7 s390x: allow CPU hotplug in random core-id order
SCLP correctly indicates the core-id aka. CPU address for each available
CPU.

As the core-id corresponds to cpu_index, also a newly created kvm vcpu
gets assigned this core-id as vcpu id. So SIGP in the kernel works
correctly (it uses the vcpu id to lookup the correct CPU).

So there should be nothing hindering us from hotplugging CPUs in random
core-id order.

This now makes sure that the output from "query-hotpluggable-cpus"
is completely true. Until now, a specific order is implicit. Performance
vice, hotplugging CPUs in non-sequential order might not be the best thing
to do, as VCPU lookup inside KVM might be a little slower. But that
doesn't hinder us from supporting it.

next_core_id is now used by linux user only.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170913132417.24384-23-david@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2017-09-19 18:31:32 +02:00
..
Makefile.objs s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
cpu-qom.h target/s390x: rename next_cpu_id to next_core_id 2017-09-19 18:31:32 +02:00
cpu.c s390x: allow CPU hotplug in random core-id order 2017-09-19 18:31:32 +02:00
cpu.h s390x: get rid of cpu_s390x_create() 2017-09-19 18:31:32 +02:00
cpu_features.c target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features_def.h s390x/cpumodel: wire up new hardware features 2017-07-14 12:29:49 +02:00
cpu_models.c s390x: print CPU definitions in sorted order 2017-09-19 18:31:32 +02:00
cpu_models.h target/s390x: move some s390x typedefs to cpu-qom.h 2017-09-19 18:31:31 +02:00
diag.c s390x: move subsystem_reset() to s390-virtio-ccw.h 2017-09-19 18:31:31 +02:00
excp_helper.c target/s390x: use "core-id" for cpu number/address/id handling 2017-09-19 18:31:32 +02:00
fpu_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390/cpumodel: remove KSS from the default model of z14 2017-07-25 09:17:42 +02:00
helper.c s390x: get rid of cpu_s390x_create() 2017-09-19 18:31:32 +02:00
helper.h target/s390x: Implement TRTR 2017-07-17 14:13:17 -07:00
insn-data.def target/s390x: Implement TRTR 2017-07-17 14:13:17 -07:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
internal.h s390x: get rid of cpu_s390x_create() 2017-09-19 18:31:32 +02:00
interrupt.c s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
ioinst.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
kvm-stub.c s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
kvm.c s390x: move s390_virtio_hypercall() to s390-virtio-hcall.h 2017-09-19 18:31:31 +02:00
kvm_s390x.h s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
machine.c s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
mem_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
misc_helper.c target/s390x: use "core-id" for cpu number/address/id handling 2017-09-19 18:31:32 +02:00
mmu_helper.c s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
translate.c target/s390x: use "core-id" for cpu number/address/id handling 2017-09-19 18:31:32 +02:00