[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] target/riscv: Exit current TB after an sfence.vma
From: |
Alistair Francis |
Subject: |
Re: [PATCH] target/riscv: Exit current TB after an sfence.vma |
Date: |
Wed, 16 Mar 2022 08:52:29 +1000 |
On Wed, Mar 16, 2022 at 5:26 AM Idan Horowitz <idan.horowitz@gmail.com> wrote:
>
> If the pages which control the translation of the currently executing
> instructions are changed, and then the TLB is flushed using sfence.vma
> we have to exit the current TB early, to ensure we don't execute stale
> instructions.
>
> Signed-off-by: Idan Horowitz <idan.horowitz@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> target/riscv/insn_trans/trans_privileged.c.inc | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/target/riscv/insn_trans/trans_privileged.c.inc
> b/target/riscv/insn_trans/trans_privileged.c.inc
> index 53613682e8..f265e8202d 100644
> --- a/target/riscv/insn_trans/trans_privileged.c.inc
> +++ b/target/riscv/insn_trans/trans_privileged.c.inc
> @@ -114,6 +114,13 @@ static bool trans_sfence_vma(DisasContext *ctx,
> arg_sfence_vma *a)
> {
> #ifndef CONFIG_USER_ONLY
> gen_helper_tlb_flush(cpu_env);
> + /*
> + * The flush might have changed the backing physical memory of
> + * the instructions we're currently executing
> + */
> + gen_set_pc_imm(ctx, ctx->pc_succ_insn);
> + tcg_gen_exit_tb(NULL, 0);
> + ctx->base.is_jmp = DISAS_NORETURN;
> return true;
> #endif
> return false;
> --
> 2.35.1
>
>
- [PATCH] target/riscv: Exit current TB after an sfence.vma, Idan Horowitz, 2022/03/15
- Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, phantom, 2022/03/16
- Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Atish Patra, 2022/03/29
- Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Idan Horowitz, 2022/03/30
- Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Atish Patra, 2022/03/30
- Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Idan Horowitz, 2022/03/30
- Re: Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, phantom, 2022/03/30
- Re: Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Palmer Dabbelt, 2022/03/30
- Re: Re: [PATCH] target/riscv: Exit current TB after an sfence.vma, Palmer Dabbelt, 2022/03/30