From: David Gibson <david@gibson.dropbear.id.au>
To: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>,
Cornelia Huck <cohuck@redhat.com>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
Artyom Tarasenko <atar4qemu@gmail.com>,
Thomas Huth <thuth@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
David Hildenbrand <david@redhat.com>,
Aurelien Jarno <aurelien@aurel32.net>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH v2 1/9] target/arm: Move start-powered-off property to generic CPUState
Date: Thu, 23 Jul 2020 10:55:30 +1000 [thread overview]
Message-ID: <20200723005530.GG5513@umbus.fritz.box> (raw)
In-Reply-To: <20200722035016.469075-2-bauerman@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 4682 bytes --]
On Wed, Jul 22, 2020 at 12:50:08AM -0300, Thiago Jung Bauermann wrote:
> There are other platforms which also have CPUs that start powered off, so
> generalize the start-powered-off property so that it can be used by them.
>
> Note that ARMv7MState also has a property of the same name but this patch
> doesn't change it because that class isn't a subclass of CPUState so it
> wouldn't be a trivial change.
>
> This change should not cause any change in behavior.
>
> Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> exec.c | 1 +
> include/hw/core/cpu.h | 4 ++++
> target/arm/cpu.c | 5 ++---
> target/arm/cpu.h | 3 ---
> target/arm/kvm32.c | 2 +-
> target/arm/kvm64.c | 2 +-
> 6 files changed, 9 insertions(+), 8 deletions(-)
>
> NB: I was only able to test that this patch builds. I wasn't able to
> run it.
>
> diff --git a/exec.c b/exec.c
> index 6f381f98e2..82e82fab09 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -899,6 +899,7 @@ Property cpu_common_props[] = {
> DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION,
> MemoryRegion *),
> #endif
> + DEFINE_PROP_BOOL("start-powered-off", CPUState, start_powered_off, false),
> DEFINE_PROP_END_OF_LIST(),
> };
>
> diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
> index 8f145733ce..9fc2696db5 100644
> --- a/include/hw/core/cpu.h
> +++ b/include/hw/core/cpu.h
> @@ -374,6 +374,10 @@ struct CPUState {
> bool created;
> bool stop;
> bool stopped;
> +
> + /* Should CPU start in powered-off state? */
> + bool start_powered_off;
> +
> bool unplug;
> bool crash_occurred;
> bool exit_request;
> diff --git a/target/arm/cpu.c b/target/arm/cpu.c
> index 111579554f..ec65c7653f 100644
> --- a/target/arm/cpu.c
> +++ b/target/arm/cpu.c
> @@ -174,8 +174,8 @@ static void arm_cpu_reset(DeviceState *dev)
> env->vfp.xregs[ARM_VFP_MVFR1] = cpu->isar.mvfr1;
> env->vfp.xregs[ARM_VFP_MVFR2] = cpu->isar.mvfr2;
>
> - cpu->power_state = cpu->start_powered_off ? PSCI_OFF : PSCI_ON;
> - s->halted = cpu->start_powered_off;
> + cpu->power_state = s->start_powered_off ? PSCI_OFF : PSCI_ON;
> + s->halted = s->start_powered_off;
>
> if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
> env->iwmmxt.cregs[ARM_IWMMXT_wCID] = 0x69051000 | 'Q';
> @@ -2182,7 +2182,6 @@ static const ARMCPUInfo arm_cpus[] = {
> };
>
> static Property arm_cpu_properties[] = {
> - DEFINE_PROP_BOOL("start-powered-off", ARMCPU, start_powered_off, false),
> DEFINE_PROP_UINT32("psci-conduit", ARMCPU, psci_conduit, 0),
> DEFINE_PROP_UINT64("midr", ARMCPU, midr, 0),
> DEFINE_PROP_UINT64("mp-affinity", ARMCPU,
> diff --git a/target/arm/cpu.h b/target/arm/cpu.h
> index 9e8ed423ea..a925d26996 100644
> --- a/target/arm/cpu.h
> +++ b/target/arm/cpu.h
> @@ -810,9 +810,6 @@ struct ARMCPU {
> */
> uint32_t psci_version;
>
> - /* Should CPU start in PSCI powered-off state? */
> - bool start_powered_off;
> -
> /* Current power state, access guarded by BQL */
> ARMPSCIState power_state;
>
> diff --git a/target/arm/kvm32.c b/target/arm/kvm32.c
> index 0af46b41c8..1f2b8f8b7a 100644
> --- a/target/arm/kvm32.c
> +++ b/target/arm/kvm32.c
> @@ -218,7 +218,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
>
> /* Determine init features for this CPU */
> memset(cpu->kvm_init_features, 0, sizeof(cpu->kvm_init_features));
> - if (cpu->start_powered_off) {
> + if (cs->start_powered_off) {
> cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_POWER_OFF;
> }
> if (kvm_check_extension(cs->kvm_state, KVM_CAP_ARM_PSCI_0_2)) {
> diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
> index 1169237905..f8a6d905fb 100644
> --- a/target/arm/kvm64.c
> +++ b/target/arm/kvm64.c
> @@ -775,7 +775,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
>
> /* Determine init features for this CPU */
> memset(cpu->kvm_init_features, 0, sizeof(cpu->kvm_init_features));
> - if (cpu->start_powered_off) {
> + if (cs->start_powered_off) {
> cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_POWER_OFF;
> }
> if (kvm_check_extension(cs->kvm_state, KVM_CAP_ARM_PSCI_0_2)) {
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-07-23 1:02 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 [this message]
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
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=20200723005530.GG5513@umbus.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=aleksandar.qemu.devel@gmail.com \
--cc=aleksandar.rikalo@syrmia.com \
--cc=atar4qemu@gmail.com \
--cc=aurelien@aurel32.net \
--cc=bauerman@linux.ibm.com \
--cc=cohuck@redhat.com \
--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=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.