[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 32/38] s390x: allow CPU hotplug in random core-id
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL v2 32/38] s390x: allow CPU hotplug in random core-id order |
Date: |
Tue, 19 Sep 2017 18:43:31 +0200 |
From: David Hildenbrand <address@hidden>
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 <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
target/s390x/cpu.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index 5724dffb88..34538c3ab9 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -199,6 +199,7 @@ static void s390_cpu_realizefn(DeviceState *dev, Error
**errp)
#else
/* implicitly set for linux-user only */
cpu->env.core_id = scc->next_core_id;
+ scc->next_core_id++;
#endif
if (cpu_exists(cpu->env.core_id)) {
@@ -206,12 +207,6 @@ static void s390_cpu_realizefn(DeviceState *dev, Error
**errp)
", it already exists", cpu->env.core_id);
goto out;
}
- if (cpu->env.core_id != scc->next_core_id) {
- error_setg(&err, "Unable to add CPU with core-id: %" PRIu32
- ", the next available core-id is %" PRIu32,
cpu->env.core_id,
- scc->next_core_id);
- goto out;
- }
/* sync cs->cpu_index and env->core_id. The latter is needed for TCG. */
cs->cpu_index = env->core_id;
@@ -219,7 +214,6 @@ static void s390_cpu_realizefn(DeviceState *dev, Error
**errp)
if (err != NULL) {
goto out;
}
- scc->next_core_id++;
#if !defined(CONFIG_USER_ONLY)
qemu_register_reset(s390_cpu_machine_reset_cb, cpu);
--
2.13.5
- [Qemu-devel] [PULL v2 22/38] target/s390x: set cpu->id for linux user when realizing, (continued)
- [Qemu-devel] [PULL v2 22/38] target/s390x: set cpu->id for linux user when realizing, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 23/38] target/s390x: use "core-id" for cpu number/address/id handling, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 24/38] target/s390x: rename next_cpu_id to next_core_id, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 25/38] s390x: print CPU definitions in sorted order, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 26/38] s390x: allow cpu hotplug via device_add, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 27/38] s390x: CPU hot unplug via device_del cannot work for now, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 28/38] s390x: implement query-hotpluggable-cpus, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 29/38] s390x: get rid of cpu_states and use possible_cpus instead, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 31/38] s390x: generate sclp cpu information from possible_cpus, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 30/38] s390x: get rid of cpu_s390x_create(), Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 32/38] s390x: allow CPU hotplug in random core-id order,
Cornelia Huck <=
- [Qemu-devel] [PULL v2 33/38] virtio-ccw: remove stale comments on endianness, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 35/38] s390x/ccw: create s390 phb for compat reasons as well, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 34/38] configure: Allow --enable-seccomp on s390x, too, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 36/38] virtio-gpu: Handle endian conversion, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 37/38] virtio-ccw: Create a virtio gpu device for the ccw bus, Cornelia Huck, 2017/09/19
- [Qemu-devel] [PULL v2 38/38] MAINTAINERS/s390x: add terminal3270.c, Cornelia Huck, 2017/09/19
- Re: [Qemu-devel] [PULL v2 00/38] various s390x patches (+some fixes), Christian Borntraeger, 2017/09/19
- Re: [Qemu-devel] [PULL v2 00/38] various s390x patches (+some fixes), Peter Maydell, 2017/09/19