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)
Sep 21 2024, 10:47 PM
Unknown Object (File)
Sep 21 2024, 2:37 AM
Unknown Object (File)
Sep 20 2024, 6:25 AM
Unknown Object (File)
Sep 19 2024, 12:48 PM
Unknown Object (File)
Sep 18 2024, 2:43 PM
Unknown Object (File)
Sep 18 2024, 5:58 AM
Unknown Object (File)
Sep 13 2024, 11:36 AM
Unknown Object (File)
Sep 12 2024, 6:49 PM
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