From: Peter Maydell <peter.maydell@linaro.org>
To: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Cc: Anup Patel <anup.patel@linaro.org>,
"patches@apm.com" <patches@apm.com>,
QEMU Developers <qemu-devel@nongnu.org>,
Rob Herring <robherring2@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
Christoffer Dall <christoffer.dall@linaro.org>
Subject: Re: [Qemu-devel] [RFC PATCH V5 6/8] target-arm: Enable KVM_ARM_VCPU_PSCI_0_2 feature when possible
Date: Wed, 14 May 2014 17:46:24 +0100 [thread overview]
Message-ID: <CAFEAcA8ig7umOj5OnVn4=Kn4TOP7X0cBZZ9+2DtaOOS9iK1mnA@mail.gmail.com> (raw)
In-Reply-To: <1399898246-4831-7-git-send-email-pranavkumar@linaro.org>
On 12 May 2014 13:37, Pranavkumar Sawargaonkar <pranavkumar@linaro.org> wrote:
> Latest linux kernel supports in-kernel emulation of PSCI v0.2 but
> to enable it we need to select KVM_ARM_VCPU_PSCI_0_2 feature using
> KVM_ARM_VCPU_INIT ioctl.
>
> Also, we can use KVM_ARM_VCPU_PSCI_0_2 feature for VCPU only when
> linux kernel has KVM_CAP_ARM_PSCI_0_2 capability.
>
> This patch updates kvm_arch_init_vcpu() to enable KVM_ARM_VCPU_PSCI_0_2
> feature for VCPU when KVM ARM/ARM64 has KVM_CAP_ARM_PSCI_0_2 capability.
I was dubious in previous versions of this patchset about
whether we could reasonably just set the CPU feature if the
kernel reports the extension. However after a discussion on
#qemu with Paolo I'm now happier that it's OK.
The effect is that we will (silently) break migration between
hosts where one end supports PSCI 0.2 and the other does not.
However it's not unreasonable at this point in time to just
say that migration requires matching kernel versions.
At a later date we might want to introduce support for CPU
feature enable/disable subflags, at which point a command line
switch would allow running a QEMU with PSCI 0.1 even on a 0.2
supporting host kernel, to allow for back-compatible migration.
(Or it might turn out that by that point PSCI-0.1-only kernels
are a distant memory...)
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> ---
> target-arm/kvm32.c | 3 +++
> target-arm/kvm64.c | 3 +++
> 2 files changed, 6 insertions(+)
>
> diff --git a/target-arm/kvm32.c b/target-arm/kvm32.c
> index cc9cdfa..afc248b 100644
> --- a/target-arm/kvm32.c
> +++ b/target-arm/kvm32.c
> @@ -179,6 +179,9 @@ int kvm_arch_init_vcpu(CPUState *cs)
> if (cpu->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)) {
> + cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PSCI_0_2;
> + }
>
> /* Do KVM_ARM_VCPU_INIT ioctl */
> ret = kvm_arm_vcpu_init(cs);
> diff --git a/target-arm/kvm64.c b/target-arm/kvm64.c
> index 528536f..917d256 100644
> --- a/target-arm/kvm64.c
> +++ b/target-arm/kvm64.c
> @@ -91,6 +91,9 @@ int kvm_arch_init_vcpu(CPUState *cs)
> if (cpu->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)) {
> + cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PSCI_0_2;
> + }
>
> /* Do KVM_ARM_VCPU_INIT ioctl */
> ret = kvm_arm_vcpu_init(cs);
> --
> 1.7.9.5
See also my review comments on patch 8: this patch is the place
to add the psci_version field to the ARMCPU struct, and set it
appropriately based on the KVM capabilities the kernel reports.
thanks
-- PMM
next prev parent reply other threads:[~2014-05-14 16:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-12 12:37 [Qemu-devel] [RFC PATCH V5 0/8] PSCI v0.2 support for KVM ARM/ARM64 Pranavkumar Sawargaonkar
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 1/8] update-linux-headers.sh: Add psci.h to linux header sync-up script Pranavkumar Sawargaonkar
2014-05-14 15:16 ` Peter Maydell
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 2/8] linux-headers: Update KVM headers from linux-next tag next-20140508 Pranavkumar Sawargaonkar
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 3/8] kvm: Handle exit reason KVM_EXIT_SYSTEM_EVENT Pranavkumar Sawargaonkar
2014-05-14 15:17 ` Peter Maydell
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 4/8] target-arm/kvm-const.h: Add QEMU_KVM_CAP_ARM_PSCI_0_2 define Pranavkumar Sawargaonkar
2014-05-14 16:42 ` Peter Maydell
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 5/8] target-arm: Common kvm_arm_vcpu_init() for KVM ARM and KVM ARM64 Pranavkumar Sawargaonkar
2014-05-14 15:30 ` Peter Maydell
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 6/8] target-arm: Enable KVM_ARM_VCPU_PSCI_0_2 feature when possible Pranavkumar Sawargaonkar
2014-05-14 16:46 ` Peter Maydell [this message]
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 7/8] target-arm: Implement kvm_arch_reset_vcpu() for KVM ARM64 Pranavkumar Sawargaonkar
2014-05-14 15:42 ` Peter Maydell
2014-05-15 15:12 ` Diana Craciun
2014-05-12 12:37 ` [Qemu-devel] [RFC PATCH V5 8/8] hw/arm/virt: Use PSCI v0.2 compatible when kernel supports it Pranavkumar Sawargaonkar
2014-05-14 16:41 ` Peter Maydell
2014-05-14 16:50 ` [Qemu-devel] [RFC PATCH V5 0/8] PSCI v0.2 support for KVM ARM/ARM64 Peter Maydell
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='CAFEAcA8ig7umOj5OnVn4=Kn4TOP7X0cBZZ9+2DtaOOS9iK1mnA@mail.gmail.com' \
--to=peter.maydell@linaro.org \
--cc=anup.patel@linaro.org \
--cc=christoffer.dall@linaro.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=patches@apm.com \
--cc=pbonzini@redhat.com \
--cc=pranavkumar@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=robherring2@gmail.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 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).