[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