rcu_read_lock(); obj = rcu_dereference(shared_ptr); // use obj – no blocking rcu_read_unlock();
Classic UNIX had bottom halves, top halves. Modern architectures demand more. Unix Systems For Modern Architectures.pdf
Thread on socket 0 → accessing socket 0 memory → ~80 ns latency Thread on socket 0 → accessing socket 1 memory → ~140 ns latency (over 70% slower) obj = rcu_dereference(shared_ptr)
UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers Curt Schimmel Classic UNIX had bottom halves
numactl -m 0 -N 0 ./my_app