All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thiago Jung Bauermann <bauerman@linux.ibm.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	qemu-s390x@nongnu.org, Cornelia Huck <cohuck@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	qemu-devel@nongnu.org,
	Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
	Aurelien Jarno <aurelien@aurel32.net>,
	Thomas Huth <thuth@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [RFC PATCH v2 8/9] sparc/sun4m: Use one cpu_reset() function for main and secondary CPUs
Date: Wed, 22 Jul 2020 21:48:38 -0300	[thread overview]
Message-ID: <87o8o7rr89.fsf@morokweng.localdomain> (raw)
In-Reply-To: <21df06b3-725f-9bba-7e98-db8b74d97902@redhat.com>


Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 7/22/20 5:50 AM, Thiago Jung Bauermann wrote:
>> If we rely on cpu_common_reset() setting CPUState::halted according to the
>> start-powered-off property, both reset functions become equivalent and we
>> can use only one.
>>
>> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
>> ---
>>  hw/sparc/sun4m.c | 21 ++++-----------------
>>  1 file changed, 4 insertions(+), 17 deletions(-)
>>
>> NB: I was only able to test that this patch builds. I wasn't able to
>> run it.
>>
>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
>> index 7b3042a801..deb5e9f027 100644
>> --- a/hw/sparc/sun4m.c
>> +++ b/hw/sparc/sun4m.c
>> @@ -218,16 +218,7 @@ static void dummy_cpu_set_irq(void *opaque, int irq, int level)
>>  {
>>  }
>>
>> -static void main_cpu_reset(void *opaque)
>> -{
>> -    SPARCCPU *cpu = opaque;
>> -    CPUState *cs = CPU(cpu);
>> -
>> -    cpu_reset(cs);
>> -    cs->halted = 0;
>> -}
>> -
>> -static void secondary_cpu_reset(void *opaque)
>> +static void sun4m_cpu_reset(void *opaque)
>>  {
>>      SPARCCPU *cpu = opaque;
>>      CPUState *cs = CPU(cpu);
>> @@ -818,7 +809,6 @@ static const TypeInfo ram_info = {
>>  static void cpu_devinit(const char *cpu_type, unsigned int id,
>>                          uint64_t prom_addr, qemu_irq **cpu_irqs)
>>  {
>> -    CPUState *cs;
>>      SPARCCPU *cpu;
>>      CPUSPARCState *env;
>>
>> @@ -826,12 +816,9 @@ static void cpu_devinit(const char *cpu_type, unsigned int id,
>>      env = &cpu->env;
>>
>>      cpu_sparc_set_id(env, id);
>> -    if (id == 0) {
>> -        qemu_register_reset(main_cpu_reset, cpu);
>
> IMO it is easier to review this patch in 2, first drop main_cpu_reset
> as it is pointless (we rely on cpu_common_reset), then set the
> "start-powered-off" property and drop secondary_cpu_reset().

That's a good idea. I made those patches for v3.

>> -    } else {
>> -        qemu_register_reset(secondary_cpu_reset, cpu);
>> -        cs = CPU(cpu);
>> -        object_property_set_bool(OBJECT(cs), "start-powered-off", true,
>> +    qemu_register_reset(sun4m_cpu_reset, cpu);
>
> Why do you still keep it?

I didn't know that not registering a reset function would cause
cpu_reset() to be caused.

>> +    if (id != 0) {
>> +        object_property_set_bool(OBJECT(cpu), "start-powered-off", true,
>>                                   &error_abort);
>
> At this point the CPU is realized, so this is correct.

Great. Thanks for confirming!

> I'd use directly:
>
>        object_property_set_bool(OBJECT(cpu), "start-powered-off", !!id,
>                                 &error_abort);

I used a slight variation of your suggestion, with `id != 0` instead of
`!!id` because I think it makes the code easier to read.

--
Thiago Jung Bauermann
IBM Linux Technology Center

  reply	other threads:[~2020-07-23  0:49 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-22  3:50 [PATCH v2 0/9] Generalize start-powered-off property from ARM Thiago Jung Bauermann
2020-07-22  3:50 ` [PATCH v2 1/9] target/arm: Move start-powered-off property to generic CPUState Thiago Jung Bauermann
2020-07-22  6:52   ` Philippe Mathieu-Daudé
2020-07-23  0:38     ` Thiago Jung Bauermann
2020-07-23  0:55   ` David Gibson
2020-07-23  3:17     ` Thiago Jung Bauermann
2020-07-23  3:17       ` Thiago Jung Bauermann
2020-07-22  3:50 ` [PATCH v2 2/9] target/arm: Move setting of CPU halted state to generic code Thiago Jung Bauermann
2020-07-22  6:54   ` Philippe Mathieu-Daudé
2020-07-23  0:55   ` David Gibson
2020-07-23  0:55     ` David Gibson
2020-07-22  3:50 ` [PATCH v2 3/9] ppc/spapr: Use start-powered-off CPUState property Thiago Jung Bauermann
2020-07-22  7:13   ` Philippe Mathieu-Daudé
2020-07-23  0:40     ` Thiago Jung Bauermann
2020-07-22  3:50 ` [PATCH v2 4/9] ppc/e500: " Thiago Jung Bauermann
2020-07-22  6:55   ` Philippe Mathieu-Daudé
2020-07-23  0:56   ` David Gibson
2020-07-23  0:56     ` David Gibson
2020-07-22  3:50 ` [PATCH v2 5/9] mips/cps: " Thiago Jung Bauermann
2020-07-22  7:09   ` Philippe Mathieu-Daudé
2020-07-23  0:42     ` Thiago Jung Bauermann
2020-07-23  0:57   ` David Gibson
2020-07-23  0:57     ` David Gibson
2020-07-22  3:50 ` [PATCH v2 6/9] sparc/sun4m: " Thiago Jung Bauermann
2020-07-23  0:57   ` David Gibson
2020-07-23  0:57     ` David Gibson
2020-07-22  3:50 ` [RFC PATCH v2 7/9] sparc/sun4m: Don't set CPUState::halted in cpu_devinit() Thiago Jung Bauermann
2020-07-22  7:02   ` Philippe Mathieu-Daudé
2020-07-23  0:45     ` Thiago Jung Bauermann
2020-07-22  3:50 ` [RFC PATCH v2 8/9] sparc/sun4m: Use one cpu_reset() function for main and secondary CPUs Thiago Jung Bauermann
2020-07-22  7:22   ` Philippe Mathieu-Daudé
2020-07-23  0:48     ` Thiago Jung Bauermann [this message]
2020-07-22  3:50 ` [RFC PATCH v2 9/9] target/s390x: Use start-powered-off CPUState property Thiago Jung Bauermann
2020-07-22  7:06   ` Philippe Mathieu-Daudé
2020-07-23  0:50     ` Thiago Jung Bauermann
2020-07-22 17:00   ` Eduardo Habkost
2020-07-23  0:51     ` Thiago Jung Bauermann
2020-07-23  0:51       ` Thiago Jung Bauermann

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=87o8o7rr89.fsf@morokweng.localdomain \
    --to=bauerman@linux.ibm.com \
    --cc=aleksandar.qemu.devel@gmail.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=atar4qemu@gmail.com \
    --cc=aurelien@aurel32.net \
    --cc=cohuck@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    /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.