Seqlocks - read side The read interface looks like: unsigned int seq; do { seq = read_seqbegin(&lock); /* Do something with it */ } while read_seqretry(&lock, seq); This is a retry-based mechanism Retry on race with writer Other notes: Reader should copy data of interest Preemption disabled within critical section