Message ID | 1396435347-20056-10-git-send-email-anup.patel@linaro.org |
---|---|
State | New |
Headers | show |
On Wed, Apr 2, 2014 at 5:42 AM, Anup Patel <anup.patel@linaro.org> wrote: > This patch adds emulation of PSCI v0.2 MIGRATE, MIGRATE_INFO_TYPE, and > MIGRATE_INFO_UP_CPU function calls for KVM ARM/ARM64. > > KVM ARM/ARM64 being a hypervisor (and not a Trusted OS), we cannot provide > this functions hence we emulate these functions in following way: > 1. MIGRATE - Returns "Not Supported" > 2. MIGRATE_INFO_TYPE - Return 2 i.e. Trusted OS is either not present > or does not require migration > 3. MIGRATE_INFO_UP_CPU - Returns "Not Supported" > > Signed-off-by: Anup Patel <anup.patel@linaro.org> > Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org> > Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> One minor thing below, otherwise: Acked-by: Rob Herring <robh@kernel.org> > --- > arch/arm/kvm/psci.c | 20 +++++++++++++++----- > 1 file changed, 15 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c > index 5fccf0b..d8335da 100644 > --- a/arch/arm/kvm/psci.c > +++ b/arch/arm/kvm/psci.c > @@ -197,6 +197,21 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) > case PSCI_0_2_FN64_AFFINITY_INFO: > val = kvm_psci_vcpu_affinity_info(vcpu); > break; > + case PSCI_0_2_FN_MIGRATE: > + case PSCI_0_2_FN64_MIGRATE: > + val = PSCI_RET_NOT_SUPPORTED; > + break; > + case PSCI_0_2_FN_MIGRATE_INFO_TYPE: > + /* > + * Trusted OS is either not present or > + * does not require migration > + */ > + val = 2; This value should be defined int psci.h along with other possible values. > + break; > + case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: > + case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: > + val = PSCI_RET_NOT_SUPPORTED; > + break; > case PSCI_0_2_FN_SYSTEM_OFF: > kvm_psci_system_off(vcpu); > val = PSCI_RET_SUCCESS; > @@ -208,12 +223,7 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) > ret = 0; > break; > case PSCI_0_2_FN_CPU_SUSPEND: > - case PSCI_0_2_FN_MIGRATE: > - case PSCI_0_2_FN_MIGRATE_INFO_TYPE: > - case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: > case PSCI_0_2_FN64_CPU_SUSPEND: > - case PSCI_0_2_FN64_MIGRATE: > - case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: > val = PSCI_RET_NOT_SUPPORTED; > break; > default: > -- > 1.7.9.5 > > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
On 2 April 2014 18:37, Rob Herring <robherring2@gmail.com> wrote: > On Wed, Apr 2, 2014 at 5:42 AM, Anup Patel <anup.patel@linaro.org> wrote: >> This patch adds emulation of PSCI v0.2 MIGRATE, MIGRATE_INFO_TYPE, and >> MIGRATE_INFO_UP_CPU function calls for KVM ARM/ARM64. >> >> KVM ARM/ARM64 being a hypervisor (and not a Trusted OS), we cannot provide >> this functions hence we emulate these functions in following way: >> 1. MIGRATE - Returns "Not Supported" >> 2. MIGRATE_INFO_TYPE - Return 2 i.e. Trusted OS is either not present >> or does not require migration >> 3. MIGRATE_INFO_UP_CPU - Returns "Not Supported" >> >> Signed-off-by: Anup Patel <anup.patel@linaro.org> >> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org> >> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> > > One minor thing below, otherwise: > > Acked-by: Rob Herring <robh@kernel.org> > >> --- >> arch/arm/kvm/psci.c | 20 +++++++++++++++----- >> 1 file changed, 15 insertions(+), 5 deletions(-) >> >> diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c >> index 5fccf0b..d8335da 100644 >> --- a/arch/arm/kvm/psci.c >> +++ b/arch/arm/kvm/psci.c >> @@ -197,6 +197,21 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) >> case PSCI_0_2_FN64_AFFINITY_INFO: >> val = kvm_psci_vcpu_affinity_info(vcpu); >> break; >> + case PSCI_0_2_FN_MIGRATE: >> + case PSCI_0_2_FN64_MIGRATE: >> + val = PSCI_RET_NOT_SUPPORTED; >> + break; >> + case PSCI_0_2_FN_MIGRATE_INFO_TYPE: >> + /* >> + * Trusted OS is either not present or >> + * does not require migration >> + */ >> + val = 2; > > This value should be defined int psci.h along with other possible values. OK, I will add #define for possible values in psci.h > >> + break; >> + case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: >> + case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: >> + val = PSCI_RET_NOT_SUPPORTED; >> + break; >> case PSCI_0_2_FN_SYSTEM_OFF: >> kvm_psci_system_off(vcpu); >> val = PSCI_RET_SUCCESS; >> @@ -208,12 +223,7 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) >> ret = 0; >> break; >> case PSCI_0_2_FN_CPU_SUSPEND: >> - case PSCI_0_2_FN_MIGRATE: >> - case PSCI_0_2_FN_MIGRATE_INFO_TYPE: >> - case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: >> case PSCI_0_2_FN64_CPU_SUSPEND: >> - case PSCI_0_2_FN64_MIGRATE: >> - case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: >> val = PSCI_RET_NOT_SUPPORTED; >> break; >> default: >> -- >> 1.7.9.5 >> >> _______________________________________________ >> kvmarm mailing list >> kvmarm@lists.cs.columbia.edu >> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm -- Anup
diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c index 5fccf0b..d8335da 100644 --- a/arch/arm/kvm/psci.c +++ b/arch/arm/kvm/psci.c @@ -197,6 +197,21 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) case PSCI_0_2_FN64_AFFINITY_INFO: val = kvm_psci_vcpu_affinity_info(vcpu); break; + case PSCI_0_2_FN_MIGRATE: + case PSCI_0_2_FN64_MIGRATE: + val = PSCI_RET_NOT_SUPPORTED; + break; + case PSCI_0_2_FN_MIGRATE_INFO_TYPE: + /* + * Trusted OS is either not present or + * does not require migration + */ + val = 2; + break; + case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: + case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: + val = PSCI_RET_NOT_SUPPORTED; + break; case PSCI_0_2_FN_SYSTEM_OFF: kvm_psci_system_off(vcpu); val = PSCI_RET_SUCCESS; @@ -208,12 +223,7 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) ret = 0; break; case PSCI_0_2_FN_CPU_SUSPEND: - case PSCI_0_2_FN_MIGRATE: - case PSCI_0_2_FN_MIGRATE_INFO_TYPE: - case PSCI_0_2_FN_MIGRATE_INFO_UP_CPU: case PSCI_0_2_FN64_CPU_SUSPEND: - case PSCI_0_2_FN64_MIGRATE: - case PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU: val = PSCI_RET_NOT_SUPPORTED; break; default: