Patchwork KVM: PPC: Make EPCR a valid field for booke64 and bookehv

login
register
mail settings
Submitter Alexander Graf
Date Dec. 1, 2012, 1:58 p.m.
Message ID <1354370305-12344-1-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/203133/
State New
Headers show

Comments

Alexander Graf - Dec. 1, 2012, 1:58 p.m.
In BookE, EPCR is defined and valid when either the HV or the 64bit
category are implemented. Reflect this in the field definition.

Today the only KVM target on 64bit is HV enabled, so there is no
change in actual source code, but this keeps the code closer to the
spec and doesn't build up artificial road blocks for a PR KVM
on 64bit.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
Scott Wood - Dec. 3, 2012, 4:47 p.m.
On 12/01/2012 07:58:25 AM, Alexander Graf wrote:
> In BookE, EPCR is defined and valid when either the HV or the 64bit
> category are implemented. Reflect this in the field definition.
> 
> Today the only KVM target on 64bit is HV enabled, so there is no
> change in actual source code, but this keeps the code closer to the
> spec and doesn't build up artificial road blocks for a PR KVM
> on 64bit.
[snip]
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/kvm_host.h  
> b/arch/powerpc/include/asm/kvm_host.h
> index 62fbd38..3480526 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
>  #ifdef CONFIG_KVM_BOOKE_HV
>  	u32 host_mas4;
>  	u32 host_mas6;
> -	u32 shadow_epcr;
> -	u32 epcr;
>  	u32 shadow_msrp;
>  	u32 eplc;
>  	u32 epsc;
>  	u32 oldpir;
>  #endif
> 
> +#if defined(CONFIG_BOOKE)
> +#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
> +	u32 shadow_epcr;
> +	u32 epcr;
> +#endif
> +#endif

On a PR-mode implementation, why would we be have a shadow_epcr?  It  
would always be set based on the host kernel, just like when running  
any other userspace process.

-Scott
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexander Graf - Dec. 3, 2012, 5:38 p.m.
On 03.12.2012, at 17:47, Scott Wood wrote:

> On 12/01/2012 07:58:25 AM, Alexander Graf wrote:
>> In BookE, EPCR is defined and valid when either the HV or the 64bit
>> category are implemented. Reflect this in the field definition.
>> Today the only KVM target on 64bit is HV enabled, so there is no
>> change in actual source code, but this keeps the code closer to the
>> spec and doesn't build up artificial road blocks for a PR KVM
>> on 64bit.
> [snip]
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
>> 1 files changed, 7 insertions(+), 2 deletions(-)
>> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
>> index 62fbd38..3480526 100644
>> --- a/arch/powerpc/include/asm/kvm_host.h
>> +++ b/arch/powerpc/include/asm/kvm_host.h
>> @@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
>> #ifdef CONFIG_KVM_BOOKE_HV
>> 	u32 host_mas4;
>> 	u32 host_mas6;
>> -	u32 shadow_epcr;
>> -	u32 epcr;
>> 	u32 shadow_msrp;
>> 	u32 eplc;
>> 	u32 epsc;
>> 	u32 oldpir;
>> #endif
>> +#if defined(CONFIG_BOOKE)
>> +#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
>> +	u32 shadow_epcr;
>> +	u32 epcr;
>> +#endif
>> +#endif
> 
> On a PR-mode implementation, why would we be have a shadow_epcr?  It would always be set based on the host kernel, just like when running any other userspace process.

Right - we could simply set MSR_CM. I'll move shadow_epcr back into the HV only bit above.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 62fbd38..3480526 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -405,14 +405,19 @@  struct kvm_vcpu_arch {
 #ifdef CONFIG_KVM_BOOKE_HV
 	u32 host_mas4;
 	u32 host_mas6;
-	u32 shadow_epcr;
-	u32 epcr;
 	u32 shadow_msrp;
 	u32 eplc;
 	u32 epsc;
 	u32 oldpir;
 #endif
 
+#if defined(CONFIG_BOOKE)
+#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
+	u32 shadow_epcr;
+	u32 epcr;
+#endif
+#endif
+
 #ifdef CONFIG_PPC_BOOK3S
 	/* For Gekko paired singles */
 	u32 qpr[32];