Page MenuHomeFreeBSD

Support LSE atomics in the arm64 casue* functions
ClosedPublic

Authored by andrew on May 17 2022, 1:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 14 2024, 4:44 AM
Unknown Object (File)
Jan 14 2024, 8:43 AM
Unknown Object (File)
Oct 29 2023, 8:29 AM
Unknown Object (File)
Oct 19 2023, 4:08 AM
Unknown Object (File)
Sep 6 2023, 5:27 AM
Unknown Object (File)
Sep 2 2023, 4:33 PM
Unknown Object (File)
Aug 10 2023, 5:31 AM
Unknown Object (File)
Aug 7 2023, 4:30 AM
Subscribers

Details

Summary

As with atomic(9) use the ARMv8.1 Large System Extension atomic
instructions to implement the userspace compare and swap functions.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I believe that the patch itself if fine.

But I noted a thing with casueword(32) and its use in kern_umtx.c. It seems that kern_umtx.c assumes that the function has sequential-constistent fence semantic. Note that both lock acquire and release just return success if casueword32 succeeded, in do_lock_normal() and do_unlock_normal(). The full fence semantic is provided on x86, but I suspect all ll/sc arches are affected.

This revision is now accepted and ready to land.May 17 2022, 11:47 PM