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. (Sorry, I've sent wrongly for patch version 7 and resend it. Again, sorry for mail-boom). 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}
On Sat, Aug 16, 2025 at 04:19:23PM +0100, 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 > 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. > > (Sorry, I've sent wrongly for patch version 7 and resend it. > Again, sorry for mail-boom). I tried to review this but I can't find any details about FEAT_LSUI in the latest Arm ARM. Where should I be looking for the architecture spec? Will
On Thu, Sep 11, 2025 at 04:09:42PM +0100, Will Deacon wrote: > On Sat, Aug 16, 2025 at 04:19:23PM +0100, 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 > > 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. > > > > (Sorry, I've sent wrongly for patch version 7 and resend it. > > Again, sorry for mail-boom). > > I tried to review this but I can't find any details about FEAT_LSUI in > the latest Arm ARM. Where should I be looking for the architecture spec? Unfortunately, it's just in the public xml at the moment. Hopefully we'll get a release of the Arm ARM by the end of the year. Otherwise, in the private 2024 arch spec. Not ideal though. If you'd rather wait until in turns up in the public spec, fine by me. -- Catalin
On Thu, Sep 11, 2025 at 05:22:22PM +0100, Catalin Marinas wrote: > On Thu, Sep 11, 2025 at 04:09:42PM +0100, Will Deacon wrote: > > On Sat, Aug 16, 2025 at 04:19:23PM +0100, 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 > > > 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. > > > > > > (Sorry, I've sent wrongly for patch version 7 and resend it. > > > Again, sorry for mail-boom). > > > > I tried to review this but I can't find any details about FEAT_LSUI in > > the latest Arm ARM. Where should I be looking for the architecture spec? > > Unfortunately, it's just in the public xml at the moment. Hopefully > we'll get a release of the Arm ARM by the end of the year. Otherwise, in > the private 2024 arch spec. Not ideal though. Ah, thanks, the xml is a *lot* better than nothing. > If you'd rather wait until in turns up in the public spec, fine by me. As long as you're happy to continue helping with the review, I think it's fine. Cheers, Will
Gentle ping in case of forgotten. On Sat, Aug 16, 2025 at 04:19:23PM +0100, 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 > 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. > > (Sorry, I've sent wrongly for patch version 7 and resend it. > Again, sorry for mail-boom). > > 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.