# title
Learn the architecture - Implementation Software Synchronization Primitives in A64

# topic.label
Learn the architecture - Implementation Software Synchronization Primitives in A64

# topic.topics[].topics[].label
The different groups of A64 atomic instructions

# topic.topics[].topics[].label
The memory attribute of address which is atomic accessed

# topic.topics[].topics[].topics[].label
An implementation of SpinLock in Linux kernel

# topic.topics[].topics[].label
Overview of Load and Store exclusive access instructions

# topic.topics[].topics[].topics[].label
Clearing local monitors on ERET and CLREX

# topic.topics[].topics[].label
Examples of simple lock()/unlock() using exclusives

# topic.topics[].topics[].label
How C/C++ atomic operations map to Arm architectural support

# topic.topics[].topics[].label
Differences to other common architecture

# topic.topics[].topics[].topics[].label
Memory model differences between Arm and X86

# topic.topics[].topics[].topics[].label
The generic spinlock in latest Linux kernel

# metadata.contentDescription
This guide describes the Arm AArch64 synchronization primitives, providing simple examples showing the use of architecture features for synchronization, and some real-world examples taken from Linux kernel version 6.6.10.