Per-CPU variables Cross-processor data sharing is expensive Locking overhead Cache line bouncing Often that expense can be avoided 2.6 has a mechanism for per-CPU variables (See the web site for details) Examples: Networking statistics Scheduler run queues Things to be aware of Cross-processor access requires explicit locking Be aware of preemption Use get_cpu_var(), put_cpu_var() Total space for per-CPU variables can be limited