From: Alexander Graf <agraf@suse.de>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: benh@kernel.crashing.org, paulus@samba.org,
linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org,
kvm@vger.kernel.org
Subject: Re: [RFC PATCH 03/10] KVM: PPC: BOOK3S: PR: Emulate instruction counter
Date: Wed, 29 Jan 2014 16:40:40 +0000 [thread overview]
Message-ID: <52E92F08.6020803@suse.de> (raw)
In-Reply-To: <1390927455-3312-4-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 01/28/2014 05:44 PM, Aneesh Kumar K.V wrote:
> Writing to IC is not allowed in the privileged mode.
This is not a patch description.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/kvm_host.h | 1 +
> arch/powerpc/kvm/book3s_emulate.c | 3 +++
> arch/powerpc/kvm/book3s_pr.c | 2 ++
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> index 9ebdd12e50a9..e0b13aca98e6 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -509,6 +509,7 @@ struct kvm_vcpu_arch {
> /* Time base value when we entered the guest */
> u64 entry_tb;
> u64 entry_vtb;
> + u64 entry_ic;
> u32 tcr;
> ulong tsr; /* we need to perform set/clr_bits() which requires ulong */
> u32 ivor[64];
> diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
> index 4b58d8a90cb5..abe6f3057e5b 100644
> --- a/arch/powerpc/kvm/book3s_emulate.c
> +++ b/arch/powerpc/kvm/book3s_emulate.c
> @@ -531,6 +531,9 @@ int kvmppc_core_emulate_mfspr_pr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val
> case SPRN_VTB:
> *spr_val = vcpu->arch.vtb;
> break;
> + case SPRN_IC:
> + *spr_val = vcpu->arch.ic;
> + break;
> case SPRN_GQR0:
> case SPRN_GQR1:
> case SPRN_GQR2:
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index b5598e9cdd09..51d469f8c9fd 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -121,6 +121,7 @@ void kvmppc_copy_to_svcpu(struct kvmppc_book3s_shadow_vcpu *svcpu,
> */
> vcpu->arch.entry_tb = get_tb();
> vcpu->arch.entry_vtb = get_vtb();
> + vcpu->arch.entry_ic = mfspr(SPRN_IC);
Is this implemented on all systems?
>
> }
>
> @@ -174,6 +175,7 @@ out:
> vcpu->arch.purr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.spurr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.vtb += get_vtb() - vcpu->arch.entry_vtb;
> + vcpu->arch.ic += mfspr(SPRN_IC) - vcpu->arch.entry_ic;
This is getting quite convoluted. How about we act slightly more fuzzy
and put all of this into vcpu_load/put?
Alex
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Graf <agraf@suse.de>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: paulus@samba.org, linuxppc-dev@lists.ozlabs.org,
kvm-ppc@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [RFC PATCH 03/10] KVM: PPC: BOOK3S: PR: Emulate instruction counter
Date: Wed, 29 Jan 2014 17:40:40 +0100 [thread overview]
Message-ID: <52E92F08.6020803@suse.de> (raw)
In-Reply-To: <1390927455-3312-4-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 01/28/2014 05:44 PM, Aneesh Kumar K.V wrote:
> Writing to IC is not allowed in the privileged mode.
This is not a patch description.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/kvm_host.h | 1 +
> arch/powerpc/kvm/book3s_emulate.c | 3 +++
> arch/powerpc/kvm/book3s_pr.c | 2 ++
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> index 9ebdd12e50a9..e0b13aca98e6 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -509,6 +509,7 @@ struct kvm_vcpu_arch {
> /* Time base value when we entered the guest */
> u64 entry_tb;
> u64 entry_vtb;
> + u64 entry_ic;
> u32 tcr;
> ulong tsr; /* we need to perform set/clr_bits() which requires ulong */
> u32 ivor[64];
> diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
> index 4b58d8a90cb5..abe6f3057e5b 100644
> --- a/arch/powerpc/kvm/book3s_emulate.c
> +++ b/arch/powerpc/kvm/book3s_emulate.c
> @@ -531,6 +531,9 @@ int kvmppc_core_emulate_mfspr_pr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val
> case SPRN_VTB:
> *spr_val = vcpu->arch.vtb;
> break;
> + case SPRN_IC:
> + *spr_val = vcpu->arch.ic;
> + break;
> case SPRN_GQR0:
> case SPRN_GQR1:
> case SPRN_GQR2:
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index b5598e9cdd09..51d469f8c9fd 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -121,6 +121,7 @@ void kvmppc_copy_to_svcpu(struct kvmppc_book3s_shadow_vcpu *svcpu,
> */
> vcpu->arch.entry_tb = get_tb();
> vcpu->arch.entry_vtb = get_vtb();
> + vcpu->arch.entry_ic = mfspr(SPRN_IC);
Is this implemented on all systems?
>
> }
>
> @@ -174,6 +175,7 @@ out:
> vcpu->arch.purr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.spurr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.vtb += get_vtb() - vcpu->arch.entry_vtb;
> + vcpu->arch.ic += mfspr(SPRN_IC) - vcpu->arch.entry_ic;
This is getting quite convoluted. How about we act slightly more fuzzy
and put all of this into vcpu_load/put?
Alex
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Graf <agraf@suse.de>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: benh@kernel.crashing.org, paulus@samba.org,
linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org,
kvm@vger.kernel.org
Subject: Re: [RFC PATCH 03/10] KVM: PPC: BOOK3S: PR: Emulate instruction counter
Date: Wed, 29 Jan 2014 17:40:40 +0100 [thread overview]
Message-ID: <52E92F08.6020803@suse.de> (raw)
In-Reply-To: <1390927455-3312-4-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 01/28/2014 05:44 PM, Aneesh Kumar K.V wrote:
> Writing to IC is not allowed in the privileged mode.
This is not a patch description.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/kvm_host.h | 1 +
> arch/powerpc/kvm/book3s_emulate.c | 3 +++
> arch/powerpc/kvm/book3s_pr.c | 2 ++
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> index 9ebdd12e50a9..e0b13aca98e6 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -509,6 +509,7 @@ struct kvm_vcpu_arch {
> /* Time base value when we entered the guest */
> u64 entry_tb;
> u64 entry_vtb;
> + u64 entry_ic;
> u32 tcr;
> ulong tsr; /* we need to perform set/clr_bits() which requires ulong */
> u32 ivor[64];
> diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
> index 4b58d8a90cb5..abe6f3057e5b 100644
> --- a/arch/powerpc/kvm/book3s_emulate.c
> +++ b/arch/powerpc/kvm/book3s_emulate.c
> @@ -531,6 +531,9 @@ int kvmppc_core_emulate_mfspr_pr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val
> case SPRN_VTB:
> *spr_val = vcpu->arch.vtb;
> break;
> + case SPRN_IC:
> + *spr_val = vcpu->arch.ic;
> + break;
> case SPRN_GQR0:
> case SPRN_GQR1:
> case SPRN_GQR2:
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index b5598e9cdd09..51d469f8c9fd 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -121,6 +121,7 @@ void kvmppc_copy_to_svcpu(struct kvmppc_book3s_shadow_vcpu *svcpu,
> */
> vcpu->arch.entry_tb = get_tb();
> vcpu->arch.entry_vtb = get_vtb();
> + vcpu->arch.entry_ic = mfspr(SPRN_IC);
Is this implemented on all systems?
>
> }
>
> @@ -174,6 +175,7 @@ out:
> vcpu->arch.purr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.spurr += get_tb() - vcpu->arch.entry_tb;
> vcpu->arch.vtb += get_vtb() - vcpu->arch.entry_vtb;
> + vcpu->arch.ic += mfspr(SPRN_IC) - vcpu->arch.entry_ic;
This is getting quite convoluted. How about we act slightly more fuzzy
and put all of this into vcpu_load/put?
Alex
next prev parent reply other threads:[~2014-01-29 16:40 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-28 16:44 [RFC PATCH 01/10] KVM: PPC: BOOK3S: PR: Add POWER8 support Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 01/10] KVM: PPC: BOOK3S: PR: Fix PURR and SPURR emulation Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 16:32 ` Alexander Graf
2014-01-29 16:32 ` Alexander Graf
2014-01-29 16:32 ` Alexander Graf
2014-01-31 10:38 ` Aneesh Kumar K.V
2014-01-31 10:50 ` Aneesh Kumar K.V
2014-01-31 10:38 ` Aneesh Kumar K.V
2014-01-31 10:47 ` Alexander Graf
2014-01-31 10:47 ` Alexander Graf
2014-01-31 10:47 ` Alexander Graf
2014-01-31 22:17 ` Paul Mackerras
2014-01-31 22:17 ` Paul Mackerras
2014-01-31 22:17 ` Paul Mackerras
2014-02-05 9:15 ` Alexander Graf
2014-02-05 9:15 ` Alexander Graf
2014-02-05 9:15 ` Alexander Graf
2014-01-28 16:44 ` [RFC PATCH 02/10] KVM: PPC: BOOK3S: PR: Emulate virtual timebase register Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 16:39 ` Alexander Graf
2014-01-29 16:39 ` Alexander Graf
2014-01-29 16:39 ` Alexander Graf
2014-01-29 22:54 ` Benjamin Herrenschmidt
2014-01-29 22:54 ` Benjamin Herrenschmidt
2014-01-29 22:54 ` Benjamin Herrenschmidt
2014-01-30 0:35 ` Benjamin Herrenschmidt
2014-01-30 0:35 ` Benjamin Herrenschmidt
2014-01-30 0:35 ` Benjamin Herrenschmidt
2014-01-30 5:49 ` Paul Mackerras
2014-01-30 5:49 ` Paul Mackerras
2014-01-30 5:49 ` Paul Mackerras
2014-01-30 10:04 ` Alexander Graf
2014-01-30 10:04 ` Alexander Graf
2014-01-30 10:04 ` Alexander Graf
2014-01-31 10:57 ` Aneesh Kumar K.V
2014-01-31 10:57 ` Aneesh Kumar K.V
2014-01-31 10:57 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 03/10] KVM: PPC: BOOK3S: PR: Emulate instruction counter Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 16:40 ` Alexander Graf [this message]
2014-01-29 16:40 ` Alexander Graf
2014-01-29 16:40 ` Alexander Graf
2014-01-31 11:25 ` Aneesh Kumar K.V
2014-01-31 11:37 ` Aneesh Kumar K.V
2014-01-31 11:25 ` Aneesh Kumar K.V
2014-01-31 11:28 ` Alexander Graf
2014-01-31 11:28 ` Alexander Graf
2014-01-31 11:28 ` Alexander Graf
2014-01-28 16:44 ` [RFC PATCH 04/10] KVM: PPC: BOOK3S: PR: Emulate Thread identification register Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 05/10] KVM: PPC: BOOK3S: PR: Doorbell support Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 06/10] KVM: PPC: BOOK3S: PR: Emulate DPDES register Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 07/10] KVM: PPC: BOOK3S: PR: Emulate facility status and control register Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 17:11 ` Alexander Graf
2014-01-29 17:11 ` Alexander Graf
2014-01-29 17:11 ` Alexander Graf
2014-01-30 6:00 ` Paul Mackerras
2014-01-30 6:00 ` Paul Mackerras
2014-01-30 6:00 ` Paul Mackerras
2014-01-30 10:02 ` Alexander Graf
2014-01-30 10:02 ` Alexander Graf
2014-01-30 10:02 ` Alexander Graf
2014-01-31 11:28 ` Aneesh Kumar K.V
2014-01-31 11:40 ` Aneesh Kumar K.V
2014-01-31 11:28 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 08/10] KVM: PPC: BOOK3S: PR: Add support for facility unavailable interrupt Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 17:35 ` Alexander Graf
2014-01-29 17:35 ` Alexander Graf
2014-01-29 17:35 ` Alexander Graf
2014-01-31 11:40 ` Aneesh Kumar K.V
2014-01-31 11:52 ` Aneesh Kumar K.V
2014-01-31 11:40 ` Aneesh Kumar K.V
2014-01-31 12:02 ` Alexander Graf
2014-01-31 12:02 ` Alexander Graf
2014-01-31 12:02 ` Alexander Graf
2014-01-28 16:44 ` [RFC PATCH 09/10] KVM: PPC: BOOK3S: PR: Ignore write to monitor mode control register Aneesh Kumar K.V
2014-01-28 16:56 ` Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-28 16:44 ` [RFC PATCH 10/10] PPC: BOOK3S: Disable/Enable TM looking at the ibm, pa-features device tree entry Aneesh Kumar K.V
2014-01-28 16:56 ` [RFC PATCH 10/10] PPC: BOOK3S: Disable/Enable TM looking at the ibm,pa-features " Aneesh Kumar K.V
2014-01-28 16:44 ` Aneesh Kumar K.V
2014-01-29 17:37 ` [RFC PATCH 10/10] PPC: BOOK3S: Disable/Enable TM looking at the ibm,pa-features device tree entr Alexander Graf
2014-01-29 17:37 ` [RFC PATCH 10/10] PPC: BOOK3S: Disable/Enable TM looking at the ibm,pa-features device tree entry Alexander Graf
2014-01-29 17:37 ` Alexander Graf
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=52E92F08.6020803@suse.de \
--to=agraf@suse.de \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=paulus@samba.org \
/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.