[PATCH 0/4] Fixes for vector misaligned load/store handlers
Bo Gan
ganboing at gmail.com
Mon Jun 8 14:16:59 PDT 2026
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(-)
--
2.34.1
More information about the opensbi
mailing list