A read-copy update is a widely used synchronization mechanism in Linux kernel. Current RCU implementation eliminates the contention and memory fence on the reading side to achieve high performance but remains long synchronization latency for updates. It's not uncommon to see high-latency reports caused by RCU write side in the Linux kernel mailing list. We provide a new RCU implementation called Passive Read-copy update which achieves relatively low synchronization latency while keeping read side fence-free. The key idea of PRCU is allowing read side to actively report on synchronization and recording an accurate list of cpus on which the threads have done read lock and haven't been scheduled out. Thus the synchronization operations only need to communicate with the unreported but recorded cpus. I'll elaborate on how PRCU works and give out some benchmark result to show how well it works.
Software Engineer, Huawei Kernel Dep. He is now working in Huawei OS kernel lab. Before that, he worked in Microsoft IAT team for ~1 year. In this project, Heng is working on basic algorithm design and implementation.