Will Your Code Survive the Attack of the Zombie Pointers? - Wong, McKenney, Michael - CppCon 2019

preview_player
Показать описание



Both the C++ and C standards currently specify that all pointers to an object become invalid (in the case of C, "indeterminate") at the end of that object's lifetime. In other words, your program's nice well-behaved pointers become vicious zombies. This transformation to zombies permits some additional diagnostics and optimizations, some deployed and some hypothetical, but it is not consistent with long-standing usage, especially for a range of concurrent and sequential algorithms that rely on loads, stores, and equality comparisons of such pointers. In fact, a few long-standing concurrent algorithms rely on assembly-language-style reincarnation of a zombie pointer when a new object is allocated at that same address.

This presentation gives an overview of several of these algorithms and discusses a range of possible ways of rehabilitating zombie pointers.

Michael Wong
VP Research & Development, Codeplay Software

Paul E. McKenney
IBM Linux Technology Center
Distinguished Engineer
Hillsboro, OR, USA

Paul E. McKenney has been coding for almost four decades, more than half of that on parallel hardware, where his work has earned him a reputation among some as a flaming heretic. Over the past decade, Paul has been an IBM Distinguished Engineer at the IBM Linux Technology Center. Paul maintains the RCU implementation within the Linux kernel, where the variety of workloads present highly entertaining performance, scalability, real-time response, and energy-efficiency challenges. Prior to that, he worked on the DYNIX/ptx kernel at Sequent, and prior to that on packet-radio and Internet protocols (but long before it was polite to mention Internet at cocktail parties), system administration, business applications, and real-time systems. His hobbies include what passes for running at his age along with the usual house-wife-and-kids habit.

Maged Michael
Facebook
Engineer
New York

Maged Michael is a software engineer at Facebook. He is the inventor of hazard pointers, lock-free malloc and several algorithms for concurrent data structures. He received a Ph.D. in computer science from the University of Rochester. He is an ACM Distinguished Scientist. He is an elected member of the Connecticut Academy of Science and Engineering. He received the 2014 ACM SIGPLAN Most Influential PLDI Paper Award for his paper on Scalable Lock-Free Dynamic Memory Allocation.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

Came for the title, stayed for the talk!

thevinn
Автор

0:50 Paul E. McKenney - Introduction
21:04 Maged Michael - Hazard Pointers
32:10 Michael Wong - Why should you care?

itsnotdarien