[PATCH v2 0/4] Fixes for vector misaligned load/store handlers
Anup Patel
apatel at ventanamicro.com
Tue Jun 16 23:16:44 PDT 2026
On Tue, Jun 9, 2026 at 11:37 AM Bo Gan <ganboing at gmail.com> wrote:
>
> Re-visit the vector misaligned load/store handlers and fix:
>
> a. Avoid stack overflow by using a small sliding mask[] buffer,
> thus optimizes stack usage *IMPORTANT* (correctness). There's no-
> longer a need to have a pre-defined vlen maximum, and worry about
> whether the stack can hold the mask[] variable.
>
> b. Maintain the value of vstart when redirecting uptrap. (optmization)
> Avoids doing duplicate work when the instruction gets restarted.
>
> c. Explicitly set VS dirty in (V)SSTATUS. (correctness), VS in
> VSSTATUS must be set dirty if coming from V=1.
>
> d. Zero out tinst in uptrap if not guest-page fault (correctness).
>
> This is a follow up patch to [1] and should be applied on top.
> [1] https://lore.kernel.org/opensbi/CAEev2e_Vg1mMP4mOKanFX_EGeUzpczRcWW++vBBuN1CfyM0BJw@mail.gmail.com/T/#t
> ---
> v2: Fix the wrong PATCH 4/4 generated in v1.
>
> ---
> Bo Gan (4):
> lib: sbi: cosmetic changes to reduce indentation
> lib: sbi: Rework and split sbi_misaligned(_v)_tinst_fixup
> lib: sbi: Add variable-length unprivilege access functions
> lib: sbi: Rework misaligned vector load/store
Applied this series to the riscv/opensbi repo.
>
> include/sbi/sbi_trap_ldst.h | 3 -
> include/sbi/sbi_unpriv.h | 16 +++
> include/sbi/sbi_vector.h | 6 ++
> lib/sbi/sbi_trap_ldst.c | 66 +++++++-----
> lib/sbi/sbi_trap_v_ldst.c | 201 ++++++++++++++++++++++--------------
> lib/sbi/sbi_unpriv.c | 88 ++++++++++++++--
> 6 files changed, 270 insertions(+), 110 deletions(-)
>
> --
> 2.34.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
Thanks,
Anup
More information about the opensbi
mailing list