[PATCH 0/4] Fixes for vector misaligned load/store handlers
Bo Gan
ganboing at gmail.com
Mon Jun 8 23:06:57 PDT 2026
Please disregard this series and use v2 instead:
https://lore.kernel.org/opensbi/20260609060024.706-1-ganboing@gmail.com/
Made some mistake during merge, and the PATCH 4/4 is messed up. sorry.
Bo
On 6/8/26 14:16, Bo Gan 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
>
> 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
>
> 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 | 198 +++++++++++++++++++++++-------------
> lib/sbi/sbi_unpriv.c | 88 ++++++++++++++--
> 6 files changed, 269 insertions(+), 108 deletions(-)
>
More information about the opensbi
mailing list