From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: lvivier@redhat.com, thuth@redhat.com, aik@ozlabs.ru,
agraf@suse.de, qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Subject: Re: [Qemu-devel] [PATCHv2 07/10] target-ppc: Split 44x tlbiva from ppc_tlb_invalidate_one()
Date: Thu, 28 Jan 2016 15:20:55 +1100 [thread overview]
Message-ID: <1453954855.3148.52.camel@kernel.crashing.org> (raw)
In-Reply-To: <1453889591-30968-8-git-send-email-david@gibson.dropbear.id.au>
On Wed, 2016-01-27 at 21:13 +1100, David Gibson wrote:
> Currently both the tlbiva instruction (used on 44x chips) and the
> tlbie
> instruction (used on hash MMU chips) are both handled via
> ppc_tlb_invalidate_one(). This is silly, because they're invoked
> from
> different places, and do different things.
>
> Clean this up by separating out the tlbiva instruction into its own
> handling. In fact the implementation is only a stub anyway.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> target-ppc/helper.h | 1 +
> target-ppc/mmu_helper.c | 14 ++++++++++----
> target-ppc/translate.c | 2 +-
> 3 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/target-ppc/helper.h b/target-ppc/helper.h
> index 869be15..e5a8f7b 100644
> --- a/target-ppc/helper.h
> +++ b/target-ppc/helper.h
> @@ -544,6 +544,7 @@ DEF_HELPER_2(74xx_tlbd, void, env, tl)
> DEF_HELPER_2(74xx_tlbi, void, env, tl)
> DEF_HELPER_FLAGS_1(tlbia, TCG_CALL_NO_RWG, void, env)
> DEF_HELPER_FLAGS_2(tlbie, TCG_CALL_NO_RWG, void, env, tl)
> +DEF_HELPER_FLAGS_2(tlbiva, TCG_CALL_NO_RWG, void, env, tl)
> #if defined(TARGET_PPC64)
> DEF_HELPER_FLAGS_3(store_slb, TCG_CALL_NO_RWG, void, env, tl, tl)
> DEF_HELPER_2(load_slb_esid, tl, env, tl)
> diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c
> index 82ebe5d..e9e0edb 100644
> --- a/target-ppc/mmu_helper.c
> +++ b/target-ppc/mmu_helper.c
> @@ -1971,10 +1971,6 @@ void ppc_tlb_invalidate_one(CPUPPCState *env,
> target_ulong addr)
> ppc6xx_tlb_invalidate_virt(env, addr, 1);
> }
> break;
> - case POWERPC_MMU_BOOKE:
> - /* XXX: TODO */
> - cpu_abort(CPU(cpu), "BookE MMU model is not implemented\n");
> - break;
> case POWERPC_MMU_32B:
> case POWERPC_MMU_601:
> /* tlbie invalidate TLBs for all segments */
> @@ -2116,6 +2112,16 @@ void helper_tlbie(CPUPPCState *env,
> target_ulong addr)
> ppc_tlb_invalidate_one(env, addr);
> }
>
> +void helper_tlbiva(CPUPPCState *env, target_ulong addr)
> +{
> + PowerPCCPU *cpu = ppc_env_get_cpu(env);
> +
> + /* tlbiva instruciton only exists on BookE */
> + assert(env->mmu_model == POWERPC_MMU_BOOKE);
> + /* XXX: TODO */
> + cpu_abort(CPU(cpu), "BookE MMU model is not implemented\n");
> +}
> +
> /* Software driven TLBs management */
> /* PowerPC 602/603 software TLB load instructions helpers */
> static void do_6xx_tlb(CPUPPCState *env, target_ulong new_EPN, int
> is_code)
> diff --git a/target-ppc/translate.c b/target-ppc/translate.c
> index 4be7eaa..a05a169 100644
> --- a/target-ppc/translate.c
> +++ b/target-ppc/translate.c
> @@ -5904,7 +5904,7 @@ static void gen_tlbiva(DisasContext *ctx)
> }
> t0 = tcg_temp_new();
> gen_addr_reg_index(ctx, t0);
> - gen_helper_tlbie(cpu_env, cpu_gpr[rB(ctx->opcode)]);
> + gen_helper_tlbiva(cpu_env, cpu_gpr[rB(ctx->opcode)]);
> tcg_temp_free(t0);
> #endif
> }
next prev parent reply other threads:[~2016-01-28 4:21 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-27 10:13 [Qemu-devel] [PATCHv2 00/10] Clean up page size handling for ppc 64-bit hash MMUs with TCG David Gibson
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 01/10] target-ppc: Remove unused kvmppc_read_segment_page_sizes() stub David Gibson
2016-01-27 12:16 ` Thomas Huth
2016-01-27 12:55 ` Laurent Vivier
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 02/10] target-ppc: Convert mmu-hash{32, 64}.[ch] from CPUPPCState to PowerPCCPU David Gibson
2016-01-27 14:11 ` Laurent Vivier
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 03/10] target-ppc: Rework ppc_store_slb David Gibson
2016-01-27 17:21 ` Laurent Vivier
2016-01-28 4:16 ` Benjamin Herrenschmidt
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 04/10] target-ppc: Rework SLB page size lookup David Gibson
2016-01-28 4:17 ` Benjamin Herrenschmidt
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 05/10] target-ppc: Use actual page size encodings from HPTE David Gibson
2016-01-28 4:18 ` Benjamin Herrenschmidt
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 06/10] target-ppc: Remove unused mmu models from ppc_tlb_invalidate_one David Gibson
2016-01-27 18:06 ` Laurent Vivier
2016-01-27 23:47 ` David Gibson
2016-01-28 4:20 ` Benjamin Herrenschmidt
2016-01-28 5:55 ` David Gibson
2016-01-28 15:45 ` Thomas Huth
2016-01-29 2:31 ` David Gibson
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 07/10] target-ppc: Split 44x tlbiva from ppc_tlb_invalidate_one() David Gibson
2016-01-27 17:58 ` Laurent Vivier
2016-01-27 23:31 ` David Gibson
2016-01-28 4:20 ` Benjamin Herrenschmidt [this message]
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 08/10] target-ppc: Add new TLB invalidate by HPTE call for hash64 MMUs David Gibson
2016-01-28 4:33 ` Benjamin Herrenschmidt
2016-01-28 5:57 ` David Gibson
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 09/10] target-ppc: Helper to determine page size information from hpte alone David Gibson
2016-01-28 4:33 ` Benjamin Herrenschmidt
2016-01-27 10:13 ` [Qemu-devel] [PATCHv2 10/10] target-ppc: Allow more page sizes for POWER7 & POWER8 in TCG David Gibson
2016-01-28 4:36 ` Benjamin Herrenschmidt
2016-01-28 20:44 ` [Qemu-devel] [PATCHv2 00/10] Clean up page size handling for ppc 64-bit hash MMUs with TCG Alexander Graf
2016-01-29 2:36 ` David Gibson
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=1453954855.3148.52.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=david@gibson.dropbear.id.au \
--cc=lvivier@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.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).