* [PATCH] KVM: PPC: e500: Emulate power management control SPR
@ 2014-06-30 12:55 Mihai Caraman
2014-06-30 18:20 ` Scott Wood
0 siblings, 1 reply; 3+ messages in thread
From: Mihai Caraman @ 2014-06-30 12:55 UTC (permalink / raw)
To: kvm-ppc; +Cc: Mihai Caraman, linuxppc-dev, kvm
For FSL e6500 core the kernel uses power management SPR register (PWRMGTCR0)
to enable idle power down for cores and devices by setting up the idle count
period at boot time. With the host already controlling the power management
configuration the guest could simply benefit from it, so emulate guest request
as nop.
Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
---
arch/powerpc/kvm/e500_emulate.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c
index 002d517..98a22e5 100644
--- a/arch/powerpc/kvm/e500_emulate.c
+++ b/arch/powerpc/kvm/e500_emulate.c
@@ -250,6 +250,10 @@ int kvmppc_core_emulate_mtspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong spr_va
spr_val);
break;
+ case SPRN_PWRMGTCR0:
+ /* Guest relies on host power management configurations */
+ break;
+
/* extra exceptions */
case SPRN_IVOR32:
vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = spr_val;
@@ -355,6 +359,10 @@ int kvmppc_core_emulate_mfspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong *spr_v
*spr_val = 0;
break;
+ case SPRN_PWRMGTCR0:
+ *spr_val = 0;
+ break;
+
case SPRN_MMUCFG:
*spr_val = vcpu->arch.mmucfg;
break;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] KVM: PPC: e500: Emulate power management control SPR
2014-06-30 12:55 [PATCH] KVM: PPC: e500: Emulate power management control SPR Mihai Caraman
@ 2014-06-30 18:20 ` Scott Wood
2014-07-03 12:03 ` Alexander Graf
0 siblings, 1 reply; 3+ messages in thread
From: Scott Wood @ 2014-06-30 18:20 UTC (permalink / raw)
To: Mihai Caraman; +Cc: linuxppc-dev, kvm, kvm-ppc
On Mon, 2014-06-30 at 15:55 +0300, Mihai Caraman wrote:
> For FSL e6500 core the kernel uses power management SPR register (PWRMGTCR0)
> to enable idle power down for cores and devices by setting up the idle count
> period at boot time. With the host already controlling the power management
> configuration the guest could simply benefit from it, so emulate guest request
> as nop.
>
> Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
> ---
> arch/powerpc/kvm/e500_emulate.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c
> index 002d517..98a22e5 100644
> --- a/arch/powerpc/kvm/e500_emulate.c
> +++ b/arch/powerpc/kvm/e500_emulate.c
> @@ -250,6 +250,10 @@ int kvmppc_core_emulate_mtspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong spr_va
> spr_val);
> break;
>
> + case SPRN_PWRMGTCR0:
> + /* Guest relies on host power management configurations */
> + break;
> +
> /* extra exceptions */
> case SPRN_IVOR32:
> vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = spr_val;
> @@ -355,6 +359,10 @@ int kvmppc_core_emulate_mfspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong *spr_v
> *spr_val = 0;
> break;
>
> + case SPRN_PWRMGTCR0:
> + *spr_val = 0;
> + break;
> +
> case SPRN_MMUCFG:
> *spr_val = vcpu->arch.mmucfg;
> break;
When reading, is it better to return zero, or the current host value, or
the value last written by the guest (even though it wasn't written to
hardware)?
-Scott
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] KVM: PPC: e500: Emulate power management control SPR
2014-06-30 18:20 ` Scott Wood
@ 2014-07-03 12:03 ` Alexander Graf
0 siblings, 0 replies; 3+ messages in thread
From: Alexander Graf @ 2014-07-03 12:03 UTC (permalink / raw)
To: Scott Wood, Mihai Caraman; +Cc: linuxppc-dev, kvm, kvm-ppc
On 30.06.14 20:20, Scott Wood wrote:
> On Mon, 2014-06-30 at 15:55 +0300, Mihai Caraman wrote:
>> For FSL e6500 core the kernel uses power management SPR register (PWRMGTCR0)
>> to enable idle power down for cores and devices by setting up the idle count
>> period at boot time. With the host already controlling the power management
>> configuration the guest could simply benefit from it, so emulate guest request
>> as nop.
>>
>> Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
>> ---
>> arch/powerpc/kvm/e500_emulate.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c
>> index 002d517..98a22e5 100644
>> --- a/arch/powerpc/kvm/e500_emulate.c
>> +++ b/arch/powerpc/kvm/e500_emulate.c
>> @@ -250,6 +250,10 @@ int kvmppc_core_emulate_mtspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong spr_va
>> spr_val);
>> break;
>>
>> + case SPRN_PWRMGTCR0:
>> + /* Guest relies on host power management configurations */
>> + break;
>> +
>> /* extra exceptions */
>> case SPRN_IVOR32:
>> vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = spr_val;
>> @@ -355,6 +359,10 @@ int kvmppc_core_emulate_mfspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong *spr_v
>> *spr_val = 0;
>> break;
>>
>> + case SPRN_PWRMGTCR0:
>> + *spr_val = 0;
>> + break;
>> +
>> case SPRN_MMUCFG:
>> *spr_val = vcpu->arch.mmucfg;
>> break;
> When reading, is it better to return zero, or the current host value, or
> the value last written by the guest (even though it wasn't written to
> hardware)?
I think it makes sense to treat it as general storage. I don't think
leaking the host value into the guest is useful. And while zero works,
the spec does say that the value gets retained, so I think we should do
the same.
Alex
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-07-03 12:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-30 12:55 [PATCH] KVM: PPC: e500: Emulate power management control SPR Mihai Caraman
2014-06-30 18:20 ` Scott Wood
2014-07-03 12:03 ` Alexander Graf
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).