免费领取大会全套PPT    

点击领取

我要参会

Paul McKenney

Meta Platforms Kernel Engineer

Paul E. McKenney has worked with real-time operating-system kernel synchronization mechanisms (e.g., realtime RCU in Linux), SMP/NUMA scalability and performance in Linux and UNIX operating-system kernels, performance analysis, routing and congestion control in networking, embedded realtime applications. He is the maintainer of RCU implementation and the rcutorture test module within the Linux kernel. Paul was previously an IBM Distinguished Engineer at the IBM Linux Technology Center. He has more than 200 publications and hold more than 100 patents. His specialties includes Performance programming for multi-threaded and multicore systems, NUMA architectures, Free/open-source software projects.

Topic

* Lifetime-End Pointer Zap

The C++ standard currently specifies that all pointers to an object become invalid at the end of its lifetime [basic.life]. Although this permits additional diagnostics and optimizations which might be of some value, it is not consistent with long-standing usage, especially for a range of concurrent and sequential algorithms that rely on loads, stores, equality comparisons, and even dereferencing of such pointers. Similar issues result from object-lifetime aspects of C++ pointer provenance. This presentation will look at the motivations behind pointer zap, walk through the decades-old LIFO Push atomic-stack example, and provide an overview of potential solutions. The goal is of course to allow concurrent code to be written in a natural way while also permitting the compiler and tools to do a reasonable job of points-to analysis.