From: "Jason J. Herne" <jjherne@linux.vnet.ibm.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: ehabkost@redhat.com, qemu-devel@nongnu.org, agraf@suse.de,
borntraeger@de.ibm.com, jfrei@linux.vnet.ibm.com,
imammedo@redhat.com, "Jason J. Herne" <jjherne@us.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 6/8] [PATCH RFC v3] s390-qemu: cpu hotplug - s390 cpu init improvements for hotplug
Date: Fri, 13 Sep 2013 11:24:44 -0400 [thread overview]
Message-ID: <52332E3C.3040502@linux.vnet.ibm.com> (raw)
In-Reply-To: <52287903.7040006@suse.de>
On 09/05/2013 08:28 AM, Andreas Färber wrote:
> Am 01.08.2013 16:12, schrieb Jason J. Herne:
>> From: "Jason J. Herne" <jjherne@us.ibm.com>
>>
>> s390_new_cpu is created to encapsulate the creation of a new QOM S390CPU
>> object given a cpuid and a model string.
>>
>> All actual cpu initialization code is moved from boot time specific functions to
>> s390_cpu_initfn (qom init routine) or to s390_new_cpu. This is done to allow us
>> to use the same basic code path for a cpu created at boot time and one created
>> during a hotplug operation.
>
> Intentionally indented?
>
>>
>> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
>> ---
>> hw/s390x/s390-virtio.c | 25 ++++++++++++-------------
>> target-s390x/cpu.c | 4 ++--
>> target-s390x/cpu.h | 1 +
>> target-s390x/helper.c | 12 ++++++++++++
>> 4 files changed, 27 insertions(+), 15 deletions(-)
>>
>> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
>> index 5ad9cf3..103f32e 100644
>> --- a/hw/s390x/s390-virtio.c
>> +++ b/hw/s390x/s390-virtio.c
...
>> @@ -197,19 +202,13 @@ void s390_init_cpus(const char *cpu_model)
>> cpu_model = "host";
>> }
>>
>> - ipi_states = g_malloc(sizeof(S390CPU *) * smp_cpus);
>> -
>> - for (i = 0; i < smp_cpus; i++) {
>> - S390CPU *cpu;
>> - CPUState *cs;
>> + ipi_states = g_malloc(sizeof(S390CPU *) * max_cpus);
>>
>> - cpu = cpu_s390x_init(cpu_model);
>> - cs = CPU(cpu);
>> -
>> - ipi_states[i] = cpu;
>> - cs->halted = 1;
>> - cpu->env.exception_index = EXCP_HLT;
>> - cpu->env.storage_keys = s390_get_storage_keys();
>> + for (i = 0; i < max_cpus; i++) {
>> + ipi_states[i] = NULL;
>
> Using g_malloc0() above would hopefully be more efficient and would
> allow to leave the loop untouched for easier review.
>
I don't follow. I'm completely changing this loop. I do not believe we
can obtain the same functionality implemented here while not touching
the loop.
>> + if (i < smp_cpus) {
>> + s390_new_cpu(cpu_model, i);
>> + }
>> }
>> }
>>
>> diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
>> index 6be6c08..c90a91c 100644
>> --- a/target-s390x/cpu.c
>> +++ b/target-s390x/cpu.c
>> @@ -116,7 +116,6 @@ static void s390_cpu_initfn(Object *obj)
>> S390CPU *cpu = S390_CPU(obj);
>> CPUS390XState *env = &cpu->env;
>> static bool inited;
>> - static int cpu_num = 0;
>> #if !defined(CONFIG_USER_ONLY)
>> struct tm tm;
>> #endif
>> @@ -135,8 +134,9 @@ static void s390_cpu_initfn(Object *obj)
>> * cpu counter in s390_cpu_reset to a negative number at
>> * initial ipl */
>> cs->halted = 1;
>> + cpu->env.exception_index = EXCP_HLT;
>> + env->storage_keys = s390_get_storage_keys();
>
> 4/8?
>
Are you asking if this belongs in patch #4? if so, I would say no. It
does deal with storage keys, yes. But we're not changing storage key
semantics here (as we are in patch 4), we're just moving where the
storage key ptr gets set. This is in support of re-organizing how cpus
are initialized as per patch title/description.
--
-- Jason J. Herne (jjherne@linux.vnet.ibm.com)
next prev parent reply other threads:[~2013-09-13 15:25 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-01 14:12 [Qemu-devel] [PATCH 0/8] [PATCH RFC v3] s390 cpu hotplug Jason J. Herne
2013-08-01 14:12 ` [Qemu-devel] [PATCH 1/8] [PATCH RFC v3] s390-qemu: cpu hotplug - Define New SCLP Codes Jason J. Herne
2013-09-05 11:25 ` Alexander Graf
2013-09-16 13:53 ` Christian Borntraeger
2013-09-16 14:29 ` Jason J. Herne
2013-09-16 14:43 ` Alexander Graf
2013-09-16 14:59 ` Jason J. Herne
2013-09-05 11:29 ` Andreas Färber
2013-08-01 14:12 ` [Qemu-devel] [PATCH 2/8] [PATCH RFC v3] s390-qemu: cpu hotplug - SCLP CPU Info Jason J. Herne
2013-09-05 11:33 ` Andreas Färber
2013-08-01 14:12 ` [Qemu-devel] [PATCH 3/8] [PATCH RFC v3] s390-qemu: cpu hotplug - SCLP Event integration Jason J. Herne
2013-09-05 11:43 ` Andreas Färber
2013-08-01 14:12 ` [Qemu-devel] [PATCH 4/8] [PATCH RFC v3] s390-qemu: cpu hotplug - Storage key global access Jason J. Herne
2013-09-05 11:46 ` Andreas Färber
2013-09-13 15:11 ` Jason J. Herne
2013-09-05 12:45 ` Alexander Graf
2013-08-01 14:12 ` [Qemu-devel] [PATCH 5/8] [PATCH RFC v3] s390-qemu: cpu hotplug - ipi_states enhancements Jason J. Herne
2013-09-05 12:01 ` Andreas Färber
2013-09-13 15:17 ` Jason J. Herne
2013-09-19 20:19 ` Jason J. Herne
2013-09-20 16:35 ` Michael Mueller
2013-10-02 21:21 ` Jason J. Herne
2013-09-05 12:46 ` Alexander Graf
2013-08-01 14:12 ` [Qemu-devel] [PATCH 6/8] [PATCH RFC v3] s390-qemu: cpu hotplug - s390 cpu init improvements for hotplug Jason J. Herne
2013-09-05 12:28 ` Andreas Färber
2013-09-13 15:24 ` Jason J. Herne [this message]
2013-10-02 21:22 ` Jason J. Herne
2013-09-05 12:51 ` Alexander Graf
2013-08-01 14:12 ` [Qemu-devel] [PATCH 7/8] [PATCH RFC v3] s390-qemu: cpu hotplug - Implement hot_add_cpu hook Jason J. Herne
2013-09-05 12:38 ` Andreas Färber
2013-09-13 15:29 ` Jason J. Herne
2013-09-16 16:57 ` Andreas Färber
2013-08-01 14:12 ` [Qemu-devel] [PATCH 8/8] [PATCH RFC v3] qemu-monitor: HMP cpu-add wrapper Jason J. Herne
2013-08-01 16:02 ` Andreas Färber
2013-08-01 17:23 ` Luiz Capitulino
2013-09-04 12:45 ` [Qemu-devel] [PATCH 0/8] [PATCH RFC v3] s390 cpu hotplug Andreas Färber
2013-09-04 12:56 ` Luiz Capitulino
2013-09-04 13:04 ` Andreas Färber
2013-09-04 13:12 ` Luiz Capitulino
2013-09-05 10:40 ` Christian Borntraeger
2013-09-05 11:25 ` Andreas Färber
2013-09-19 20:13 ` Jason J. Herne
2013-09-05 12:54 ` Alexander Graf
2013-09-05 13:05 ` Andreas Färber
2013-09-05 13:10 ` Alexander Graf
2013-09-05 14:06 ` Andreas Färber
2013-09-13 15:01 ` Jason J. Herne
2013-09-13 15:23 ` Andreas Färber
2013-09-16 10:43 ` Michael Mueller
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=52332E3C.3040502@linux.vnet.ibm.com \
--to=jjherne@linux.vnet.ibm.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jfrei@linux.vnet.ibm.com \
--cc=jjherne@us.ibm.com \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).