arch/arm64/Kconfig | 5 + arch/arm64/include/asm/futex.h | 291 +++++++++++++++++++++++++++------ arch/arm64/kernel/cpufeature.c | 10 ++ arch/arm64/kvm/sys_regs.c | 5 +- arch/arm64/tools/cpucaps | 1 + 5 files changed, 261 insertions(+), 51 deletions(-)
Since Armv9.6, FEAT_LSUI supplies the load/store instructions for previleged level to access to access user memory without clearing PSTATE.PAN bit. This patchset support FEAT_LSUI and applies in futex atomic operation where can replace from ldxr/stlxr pair implmentation with clearing PSTATE.PAN bit to correspondant load/store unprevileged atomic operation without clearing PSTATE.PAN bit. Patch Sequences ================ Patch #1 adds cpufeature for FEAT_LSUI Patch #2 expose FEAT_LSUI to guest Patch #3 adds Kconfig for FEAT_LSUI Patch #4 refactor former futex atomic-op implmentation with ll/sc & clearing PSTATE.PAN Patch #5 applies small optimisation for __llc_futex_atomic_set(). Patch #6 support futext atomic-op with FEAT_LSUI Patch History ============== from v6 to v7: - wrap FEAT_LSUI with CONFIG_AS_HAS_LSUI in cpufeature - remove unnecessary addition of indentation. - remove unnecessary mte_tco_enable()/disable() on LSUI operation. - https://lore.kernel.org/all/20250811163635.1562145-1-yeoreum.yun@arm.com/ from v5 to v6: - rebase to v6.17-rc1 - https://lore.kernel.org/all/20250722121956.1509403-1-yeoreum.yun@arm.com/ from v4 to v5: - remove futex_ll_sc.h futext_lsui and lsui.h and move them to futex.h - reorganize the patches. - https://lore.kernel.org/all/20250721083618.2743569-1-yeoreum.yun@arm.com/ from v3 to v4: - rebase to v6.16-rc7 - modify some patch's title. - https://lore.kernel.org/all/20250617183635.1266015-1-yeoreum.yun@arm.com/ from v2 to v3: - expose FEAT_LUSI to guest - add help section for LUSI Kconfig - https://lore.kernel.org/all/20250611151154.46362-1-yeoreum.yun@arm.com/ from v1 to v2: - remove empty v9.6 menu entry - locate HAS_LUSI in cpucaps in order - https://lore.kernel.org/all/20250611104916.10636-1-yeoreum.yun@arm.com/ Yeoreum Yun (6): arm64: cpufeature: add FEAT_LSUI KVM: arm64: expose FEAT_LSUI to guest arm64: Kconfig: add LSUI Kconfig arm64: futex: refactor futex atomic operation arm64: futex: small optimisation for __llsc_futex_atomic_set() arm64: futex: support futex with FEAT_LSUI arch/arm64/Kconfig | 5 + arch/arm64/include/asm/futex.h | 291 +++++++++++++++++++++++++++------ arch/arm64/kernel/cpufeature.c | 10 ++ arch/arm64/kvm/sys_regs.c | 5 +- arch/arm64/tools/cpucaps | 1 + 5 files changed, 261 insertions(+), 51 deletions(-) base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585 -- LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
Sorry for everyone. I've sent wrongly.... I'll resend it again properly. Sorry again for mail-boom.. > Since Armv9.6, FEAT_LSUI supplies the load/store instructions for > previleged level to access to access user memory without clearing > PSTATE.PAN bit. > > This patchset support FEAT_LSUI and applies in futex atomic operation > where can replace from ldxr/stlxr pair implmentation with clearing > PSTATE.PAN bit to correspondant load/store unprevileged atomic operation > without clearing PSTATE.PAN bit. > > Patch Sequences > ================ > > Patch #1 adds cpufeature for FEAT_LSUI > > Patch #2 expose FEAT_LSUI to guest > > Patch #3 adds Kconfig for FEAT_LSUI > > Patch #4 refactor former futex atomic-op implmentation with ll/sc & > clearing PSTATE.PAN > > Patch #5 applies small optimisation for __llc_futex_atomic_set(). > > Patch #6 support futext atomic-op with FEAT_LSUI > > Patch History > ============== > from v6 to v7: > - wrap FEAT_LSUI with CONFIG_AS_HAS_LSUI in cpufeature > - remove unnecessary addition of indentation. > - remove unnecessary mte_tco_enable()/disable() on LSUI operation. > - https://lore.kernel.org/all/20250811163635.1562145-1-yeoreum.yun@arm.com/ > > from v5 to v6: > - rebase to v6.17-rc1 > - https://lore.kernel.org/all/20250722121956.1509403-1-yeoreum.yun@arm.com/ > > from v4 to v5: > - remove futex_ll_sc.h futext_lsui and lsui.h and move them to futex.h > - reorganize the patches. > - https://lore.kernel.org/all/20250721083618.2743569-1-yeoreum.yun@arm.com/ > > from v3 to v4: > - rebase to v6.16-rc7 > - modify some patch's title. > - https://lore.kernel.org/all/20250617183635.1266015-1-yeoreum.yun@arm.com/ > > from v2 to v3: > - expose FEAT_LUSI to guest > - add help section for LUSI Kconfig > - https://lore.kernel.org/all/20250611151154.46362-1-yeoreum.yun@arm.com/ > > from v1 to v2: > - remove empty v9.6 menu entry > - locate HAS_LUSI in cpucaps in order > - https://lore.kernel.org/all/20250611104916.10636-1-yeoreum.yun@arm.com/ > > > Yeoreum Yun (6): > arm64: cpufeature: add FEAT_LSUI > KVM: arm64: expose FEAT_LSUI to guest > arm64: Kconfig: add LSUI Kconfig > arm64: futex: refactor futex atomic operation > arm64: futex: small optimisation for __llsc_futex_atomic_set() > arm64: futex: support futex with FEAT_LSUI > > arch/arm64/Kconfig | 5 + > arch/arm64/include/asm/futex.h | 291 +++++++++++++++++++++++++++------ > arch/arm64/kernel/cpufeature.c | 10 ++ > arch/arm64/kvm/sys_regs.c | 5 +- > arch/arm64/tools/cpucaps | 1 + > 5 files changed, 261 insertions(+), 51 deletions(-) > > > base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585 > -- > LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7} > -- Sincerely, Yeoreum Yun
© 2016 - 2025 Red Hat, Inc.