From: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
To: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org
Cc: borntraeger@de.ibm.com, agraf@suse.de, dahi@linux.vnet.ibm.com,
pbonzini@redhat.com, bharata@linux.vnet.ibm.com,
cornelia.huck@de.ibm.com, imammedo@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH v6 7/7] s390x/cpu: Allow hotplug of CPUs
Date: Mon, 22 Feb 2016 15:54:53 -0500 [thread overview]
Message-ID: <56CB759D.70901@linux.vnet.ibm.com> (raw)
In-Reply-To: <56CB43E2.1060207@suse.de>
On 02/22/2016 12:22 PM, Andreas Färber wrote:
> Am 22.02.2016 um 18:06 schrieb Matthew Rosato:
>> Implement cpu hotplug routine and add the machine hook.
>>
>> Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
>> ---
>> hw/s390x/s390-virtio-ccw.c | 33 +++++++++++++++++++++++++++++++++
>> target-s390x/cpu.c | 7 +++++++
>> 2 files changed, 40 insertions(+)
>>
>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>> index 3090e76..ea007e8 100644
>> --- a/hw/s390x/s390-virtio-ccw.c
>> +++ b/hw/s390x/s390-virtio-ccw.c
>> @@ -22,6 +22,7 @@
>> #include "s390-pci-bus.h"
>> #include "hw/s390x/storage-keys.h"
>> #include "hw/compat.h"
>> +#include "qom/cpu.h"
>>
>> #define TYPE_S390_CCW_MACHINE "s390-ccw-machine"
>>
>> @@ -185,6 +186,37 @@ static HotplugHandler *s390_get_hotplug_handler(MachineState *machine,
>> return NULL;
>> }
>>
>> +static void s390_hot_add_cpu(const int64_t id, Error **errp)
>> +{
>> + MachineState *machine = MACHINE(qdev_get_machine());
>> +
>> + if (id < 0) {
>> + error_setg(errp, "Invalid CPU id: %" PRIi64, id);
>> + return;
>> + }
>> +
>> + if (cpu_exists(id)) {
>> + error_setg(errp, "Unable to add CPU: %" PRIi64
>> + ", it already exists", id);
>> + return;
>> + }
>> +
>> + if (id >= max_cpus) {
>> + error_setg(errp, "Unable to add CPU: %" PRIi64
>> + ", max allowed: %d", id, max_cpus - 1);
>> + return;
>> + }
>> +
>> + if (id != (last_cpu->cpu_index + 1)) {
>
> This assumption about the order of the CPU list looks dangerous to me.
> Aren't there global int fields used by x86 already for the number of
> CPUs that you could use instead? That will allow you to drop the ugly
> preceding renaming patch. Please avoid messing with the CPU list
> directly from target code.
>
Not that I can find. We were keeping track of it with our own int for
s390x, I just switched to this approach per review suggestion -- Sounds
like you'd rather I bring back the int and inspect that, that's fine by
me.
>> + error_setg(errp, "Unable to add CPU: %" PRIi64
>> + ", The next available id is %d", id,
>> + (last_cpu->cpu_index + 1));
>> + return;
>> + }
>> +
>> + cpu_s390x_init(machine->cpu_model);
>
> No proper error handling - that's why blindly reusing these old helpers
> is a bad idea.
>
Good point -- Let me re-work this into something more like f(model, id,
local_err).
Matt
prev parent reply other threads:[~2016-02-22 20:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-22 17:06 [Qemu-devel] [PATCH v6 0/7] Allow hotplug of s390 CPUs Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 1/7] s390x/cpu: Cleanup init in preparation for hotplug Matthew Rosato
2016-02-22 17:46 ` Andreas Färber
2016-02-22 20:30 ` Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 2/7] s390x/cpu: Set initial CPU state in common routine Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 3/7] s390x/cpu: Move some CPU initialization into realize Matthew Rosato
2016-02-22 17:35 ` Andreas Färber
2016-02-22 20:41 ` Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 4/7] s390x/cpu: Add CPU property links Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 5/7] s390/virtio-ccw: Add hotplug handler Matthew Rosato
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 6/7] cpu: Add a last_cpu macro Matthew Rosato
2016-02-22 17:30 ` Andreas Färber
2016-02-22 17:06 ` [Qemu-devel] [PATCH v6 7/7] s390x/cpu: Allow hotplug of CPUs Matthew Rosato
2016-02-22 17:22 ` Andreas Färber
2016-02-22 20:54 ` Matthew Rosato [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56CB759D.70901@linux.vnet.ibm.com \
--to=mjrosato@linux.vnet.ibm.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=bharata@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=dahi@linux.vnet.ibm.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.