arch/arm64/Kconfig | 20 ++ arch/arm64/include/asm/futex.h | 322 +++++++++++++++--- arch/arm64/kernel/armv8_deprecated.c | 16 + arch/arm64/kernel/cpufeature.c | 27 ++ arch/arm64/kvm/sys_regs.c | 3 +- arch/arm64/tools/cpucaps | 1 + .../testing/selftests/kvm/arm64/set_id_regs.c | 1 + 7 files changed, 339 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
and user_swpX emulation where can replace from ldxr/st{l}xr
pair implmentation with clearing PSTATE.PAN bit to correspondant
load/store unprevileged atomic operation without clearing PSTATE.PAN bit.
This patch based on v6.19-rc6
Patch History
==============
from v11 to v12:
- rebase to v6.19-rc6
- add CONFIG_ARM64_LSUI
- enable LSUI when !CPU_BIG_ENDIAN and PAN presents.
- drop the swp emulation with LSUI insns instead, disable it
when LSUI presents.
- some of small fixes (useless prefix and suffix and etc).
- https://lore.kernel.org/all/20251214112248.901769-1-yeoreum.yun@arm.com/
from v10 to v11:
- rebase to v6.19-rc1
- use cast instruction to emulate deprecated swpb instruction
- https://lore.kernel.org/all/20251103163224.818353-1-yeoreum.yun@arm.com/
from v9 to v10:
- apply FEAT_LSUI to user_swpX emulation.
- add test coverage for LSUI bit in ID_AA64ISAR3_EL1
- rebase to v6.18-rc4
- https://lore.kernel.org/all/20250922102244.2068414-1-yeoreum.yun@arm.com/
from v8 to v9:
- refotoring __lsui_cmpxchg64()
- rebase to v6.17-rc7
- https://lore.kernel.org/all/20250917110838.917281-1-yeoreum.yun@arm.com/
from v7 to v8:
- implements futex_atomic_eor() and futex_atomic_cmpxchg() with casalt
with C helper.
- Drop the small optimisation on ll/sc futex_atomic_set operation.
- modify some commit message.
- https://lore.kernel.org/all/20250816151929.197589-1-yeoreum.yun@arm.com/
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_LSUI to guest
- add help section for LSUI 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_LSUI in cpucaps in order
- https://lore.kernel.org/all/20250611104916.10636-1-yeoreum.yun@arm.com/
Yeoreum Yun (7):
arm64: Kconfig: add support for LSUI
arm64: cpufeature: add FEAT_LSUI
KVM: arm64: expose FEAT_LSUI to guest
KVM: arm64: kselftest: set_id_regs: add test for FEAT_LSUI
arm64: futex: refactor futex atomic operation
arm64: futex: support futex with FEAT_LSUI
arm64: armv8_deprecated: disable swp emulation when FEAT_LSUI present
arch/arm64/Kconfig | 20 ++
arch/arm64/include/asm/futex.h | 322 +++++++++++++++---
arch/arm64/kernel/armv8_deprecated.c | 16 +
arch/arm64/kernel/cpufeature.c | 27 ++
arch/arm64/kvm/sys_regs.c | 3 +-
arch/arm64/tools/cpucaps | 1 +
.../testing/selftests/kvm/arm64/set_id_regs.c | 1 +
7 files changed, 339 insertions(+), 51 deletions(-)
--
LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
Gentle ping in case of forgotten.
On Wed, Jan 21, 2026 at 07:06:15PM +0000, Yeoreum Yun wrote:
> 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
> and user_swpX emulation where can replace from ldxr/st{l}xr
> pair implmentation with clearing PSTATE.PAN bit to correspondant
> load/store unprevileged atomic operation without clearing PSTATE.PAN bit.
>
> This patch based on v6.19-rc6
>
> Patch History
> ==============
> from v11 to v12:
> - rebase to v6.19-rc6
> - add CONFIG_ARM64_LSUI
> - enable LSUI when !CPU_BIG_ENDIAN and PAN presents.
> - drop the swp emulation with LSUI insns instead, disable it
> when LSUI presents.
> - some of small fixes (useless prefix and suffix and etc).
> - https://lore.kernel.org/all/20251214112248.901769-1-yeoreum.yun@arm.com/
>
> from v10 to v11:
> - rebase to v6.19-rc1
> - use cast instruction to emulate deprecated swpb instruction
> - https://lore.kernel.org/all/20251103163224.818353-1-yeoreum.yun@arm.com/
>
> from v9 to v10:
> - apply FEAT_LSUI to user_swpX emulation.
> - add test coverage for LSUI bit in ID_AA64ISAR3_EL1
> - rebase to v6.18-rc4
> - https://lore.kernel.org/all/20250922102244.2068414-1-yeoreum.yun@arm.com/
>
> from v8 to v9:
> - refotoring __lsui_cmpxchg64()
> - rebase to v6.17-rc7
> - https://lore.kernel.org/all/20250917110838.917281-1-yeoreum.yun@arm.com/
>
> from v7 to v8:
> - implements futex_atomic_eor() and futex_atomic_cmpxchg() with casalt
> with C helper.
> - Drop the small optimisation on ll/sc futex_atomic_set operation.
> - modify some commit message.
> - https://lore.kernel.org/all/20250816151929.197589-1-yeoreum.yun@arm.com/
>
> 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_LSUI to guest
> - add help section for LSUI 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_LSUI in cpucaps in order
> - https://lore.kernel.org/all/20250611104916.10636-1-yeoreum.yun@arm.com/
>
>
> Yeoreum Yun (7):
> arm64: Kconfig: add support for LSUI
> arm64: cpufeature: add FEAT_LSUI
> KVM: arm64: expose FEAT_LSUI to guest
> KVM: arm64: kselftest: set_id_regs: add test for FEAT_LSUI
> arm64: futex: refactor futex atomic operation
> arm64: futex: support futex with FEAT_LSUI
> arm64: armv8_deprecated: disable swp emulation when FEAT_LSUI present
>
> arch/arm64/Kconfig | 20 ++
> arch/arm64/include/asm/futex.h | 322 +++++++++++++++---
> arch/arm64/kernel/armv8_deprecated.c | 16 +
> arch/arm64/kernel/cpufeature.c | 27 ++
> arch/arm64/kvm/sys_regs.c | 3 +-
> arch/arm64/tools/cpucaps | 1 +
> .../testing/selftests/kvm/arm64/set_id_regs.c | 1 +
> 7 files changed, 339 insertions(+), 51 deletions(-)
>
> --
> LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
>
--
Sincerely,
Yeoreum Yun
On Fri, Feb 06, 2026 at 09:04:41AM +0000, Yeoreum Yun wrote: > Gentle ping in case of forgotten. Not forgotten but lower priority given that the merging window is about to open this Sunday. The LSUI series is now aimed at the next cycle. -- Catalin
© 2016 - 2026 Red Hat, Inc.