TSan으로 데이터 레이스 디버깅 — Happens-before 추적
ThreadSanitizer로 멀티스레드 버그 추적 — happens-before 모델, false positive, atomic·mutex 통합.
11개의 포스트
ThreadSanitizer로 멀티스레드 버그 추적 — happens-before 모델, false positive, atomic·mutex 통합.
Valgrind의 두 동시성 분석 도구 비교 — Helgrind의 락 추적과 DRD의 vector clock, 언제 무엇을.
Concurrency vs Parallelism (Rob Pike). Race condition. Memory model 도입.
MPMC와 SPSC 차이, Vyukov 큐, Disruptor의 ring과 sequence, bounded와 unbounded 비교를 실측과 함께 정리합니다.
False sharing의 원리와 영향, perf c2c 감지, alignas(64) padding, per-CPU 변수, thread-local까지 해결 전략을 정리합니다.
ABA 시나리오, tagged pointer (64-bit + tag), version counter, hazard pointer 활용, 실제 사례를 정리합니다.
Lock hold time, 코어 수, preemption, real-time 요구사항에 따라 spinlock과 mutex를 어떻게 고를지 ticket lock과 MCS lock까지 함께 정리합니다.
memory_order별 ARM 명령어 차이, LSE vs LL/SC, hot spinning 회피까지 atomic 연산의 실측 비용을 정리합니다.
CAS loop, strong과 weak CAS, ABA 회피, exponential backoff, spurious failure까지 CAS 사용의 표준 패턴을 정리합니다.
Lock-free 메모리 회수, ABA 회피, RCU와의 비교, C++ proposal까지 hazard pointer의 원리와 구현을 정리합니다.
RCU 원리, rcu_read_lock, grace period, synchronize_rcu, 임베디드 적용(URCU)을 정리합니다.