From: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
To: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, agraf@suse.de, borntraeger@de.ibm.com,
pbonzini@redhat.com, bharata@linux.vnet.ibm.com,
cornelia.huck@de.ibm.com, imammedo@redhat.com, afaerber@suse.de,
rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH v8 4/7] s390x/cpu: Tolerate max_cpus
Date: Fri, 4 Mar 2016 09:09:17 -0500 [thread overview]
Message-ID: <56D9970D.9040704@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160304090551.235f19af@thinkpad-w530>
On 03/04/2016 03:05 AM, David Hildenbrand wrote:
>> Once hotplug is enabled, interrupts may come in for CPUs
>> with an address > smp_cpus. Allocate for this and allow
>> search routines to look beyond smp_cpus.
>>
>> Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
>> ---
>> hw/s390x/s390-virtio.c | 13 +++++++------
>> 1 file changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
>> index c501a48..90bc58a 100644
>> --- a/hw/s390x/s390-virtio.c
>> +++ b/hw/s390x/s390-virtio.c
>> @@ -58,15 +58,16 @@
>> #define S390_TOD_CLOCK_VALUE_MISSING 0x00
>> #define S390_TOD_CLOCK_VALUE_PRESENT 0x01
>>
>> -static S390CPU **ipi_states;
>> +static S390CPU **cpu_states;
>>
>> S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
>> {
>> - if (cpu_addr >= smp_cpus) {
>> + if (cpu_addr >= max_cpus) {
>> return NULL;
>> }
>>
>> - return ipi_states[cpu_addr];
>> + /* Fast lookup via CPU ID */
>> + return cpu_states[cpu_addr];
>> }
>>
>> void s390_init_ipl_dev(const char *kernel_filename,
>> @@ -101,14 +102,14 @@ void s390_init_cpus(MachineState *machine)
>> machine->cpu_model = "host";
>> }
>>
>> - ipi_states = g_malloc(sizeof(S390CPU *) * smp_cpus);
>> + cpu_states = g_malloc0(sizeof(S390CPU *) * max_cpus);
>>
>> - for (i = 0; i < smp_cpus; i++) {
>> + for (i = 0; i < max_cpus; i++) {
>> S390CPU *cpu;
>>
>> cpu = cpu_s390x_init(machine->cpu_model);
>>
>> - ipi_states[i] = cpu;
>> + cpu_states[i] = cpu;
>
> This looks wrong (creating all cpus). But the net patch fixes it again.
>
Ouch. Definitely wrong, error introduced during patch split. We
allocate for max_cpus, but should only create smp_cpus cpus during init.
> Can you make this patch a simple rename patch and move the max_cpu stuff into
> the next patch if this makes sense?
>
> Or simply set the cpu_state for everything above smp_cpus to zero in this patch.
This is done via the gmalloc0. If I hadn't messed up this loop, the net
result would be the ability to handle > smp_cpus, but nobody will ever
create one (yet).
Matt
next prev parent reply other threads:[~2016-03-04 14:09 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-03 21:30 [Qemu-devel] [PATCH v8 0/7] Allow hotplug of s390 CPUs Matthew Rosato
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 1/7] s390x/cpu: Cleanup init in preparation for hotplug Matthew Rosato
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 2/7] s390x/cpu: Set initial CPU state in common routine Matthew Rosato
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 3/7] s390x/cpu: Get rid of side effects when creating a vcpu Matthew Rosato
2016-03-04 7:45 ` David Hildenbrand
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 4/7] s390x/cpu: Tolerate max_cpus Matthew Rosato
2016-03-04 8:05 ` David Hildenbrand
2016-03-04 14:09 ` Matthew Rosato [this message]
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 5/7] s390x/cpu: Add CPU property links Matthew Rosato
2016-03-04 8:07 ` David Hildenbrand
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 6/7] s390x/cpu: Add error handling to cpu creation Matthew Rosato
2016-03-04 8:01 ` David Hildenbrand
2016-03-04 10:16 ` Bharata B Rao
2016-03-04 11:07 ` David Hildenbrand
2016-03-04 11:31 ` Bharata B Rao
2016-03-04 11:44 ` Bharata B Rao
2016-03-04 11:50 ` David Hildenbrand
2016-03-04 18:03 ` Igor Mammedov
2016-03-07 10:02 ` David Hildenbrand
2016-03-07 10:12 ` Igor Mammedov
2016-03-07 11:49 ` Cornelia Huck
2016-03-07 14:50 ` Igor Mammedov
2016-03-03 21:30 ` [Qemu-devel] [PATCH v8 7/7] s390x/cpu: Allow hotplug of CPUs Matthew Rosato
2016-03-04 7:46 ` David Hildenbrand
2016-03-04 13:03 ` [Qemu-devel] [PATCH v8 0/7] Allow hotplug of s390 CPUs Cornelia Huck
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=56D9970D.9040704@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.