qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 5242ef: target/riscv: Avoid leaking "no trans


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 5242ef: target/riscv: Avoid leaking "no translation" TLB e...
Date: Fri, 01 Apr 2022 08:01:48 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 5242ef887dd06659e3d516cb4000c8ed3277fb08
      
https://github.com/qemu/qemu/commit/5242ef887dd06659e3d516cb4000c8ed3277fb08
  Author: Palmer Dabbelt <palmer@rivosinc.com>
  Date:   2022-04-01 (Fri, 01 Apr 2022)

  Changed paths:
    M target/riscv/csr.c

  Log Message:
  -----------
  target/riscv: Avoid leaking "no translation" TLB entries

The ISA doesn't allow bare mappings to be cached, as the caches are
translations and bare mppings are not translated.  We cache these
translations in QEMU in order to utilize the TLB code, but that leaks
out to the guest.

Suggested-by: phantom@zju.edu.cn # no name in the From field
Fixes: 1e0d985fa9 ("target/riscv: Only flush TLB if SATP.ASID changes")
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20220330165913.8836-1-palmer@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>


  Commit: 8ff8ac63298611c8373b294ec936475b1a33f63f
      
https://github.com/qemu/qemu/commit/8ff8ac63298611c8373b294ec936475b1a33f63f
  Author: Yueh-Ting (eop) Chen <eop.chen@sifive.com>
  Date:   2022-04-01 (Fri, 01 Apr 2022)

  Changed paths:
    M target/riscv/insn_trans/trans_rvv.c.inc

  Log Message:
  -----------
  target/riscv: rvv: Add missing early exit condition for whole register 
load/store

According to v-spec (section 7.9):
The instructions operate with an effective vector length, evl=NFIELDS*VLEN/EEW,
regardless of current settings in vtype and vl. The usual property that no
elements are written if vstart ≥ vl does not apply to these instructions.
Instead, no elements are written if vstart ≥ evl.

Signed-off-by: eop Chen <eop.chen@sifive.com>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <164762720573.18409.3931931227997483525-0@git.sr.ht>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>


  Commit: 697d18b1bd2667efa418cc7d7248d5450da547e7
      
https://github.com/qemu/qemu/commit/697d18b1bd2667efa418cc7d7248d5450da547e7
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2022-04-01 (Fri, 01 Apr 2022)

  Changed paths:
    M target/riscv/csr.c
    M target/riscv/insn_trans/trans_rvv.c.inc

  Log Message:
  -----------
  Merge tag 'pull-riscv-to-apply-20220401' of github.com:alistair23/qemu into 
staging

Sixth RISC-V PR for QEMU 7.0

This is a last minute RISC-V PR for 7.0.

It includes a fix to avoid leaking no translation TLB entries. This
incorrectly cached uncachable baremetal entries. This would break Linux
boot while single stepping. As the fix is pretty straight forward (flush
the cache more often) it's being pulled in for 7.0.

At the same time I have included a RISC-V vector extension fixup patch.

# gpg: Signature made Fri 01 Apr 2022 00:33:58 BST
# gpg:                using RSA key F6C4AC46D4934868D3B8CE8F21E10D29DF977054
# gpg: Good signature from "Alistair Francis <alistair@alistair23.me>" [full]
# Primary key fingerprint: F6C4 AC46 D493 4868 D3B8  CE8F 21E1 0D29 DF97 7054

* tag 'pull-riscv-to-apply-20220401' of github.com:alistair23/qemu:
  target/riscv: rvv: Add missing early exit condition for whole register 
load/store
  target/riscv: Avoid leaking "no translation" TLB entries

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/9b617b1bb405...697d18b1bd26



reply via email to

[Prev in Thread] Current Thread [Next in Thread]