Skip to content

Conversation

@ehds
Copy link
Contributor

@ehds ehds commented Oct 18, 2025

The protected pointer placed in hprec_ (store) should not be reordered after to read hazptr_obj (load). folly::asymmetric_thread_fence_light on Linux only prevents compiler reordering, but cannot prevent CPU reordering (x86 allows store-load reorder).

Therefore the load operation may be executed first but the protected pointer has not yet placed to hprec_, if there some other threads try to retire this hazptr, it might be success.

@meta-cla meta-cla bot added the CLA Signed label Oct 18, 2025
The protected pointer placed in hprec_ (store) should not be reordered after to read hazptr_obj (load). folly::asymmetric_thread_fence_light on Linux only prevents compiler reordering, but cannot prevent CPU reordering (x86 allows store-load reorder).

Therefore the load operation may be executed first but the protected pointer has not yet placed to hprec_, if there some other threads try to retire this hazptr, it might be success.
@ehds ehds force-pushed the fix_try_protect_memory_order branch from c5b87fb to 5079f10 Compare October 18, 2025 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant