filmov
tv
Will Your Code Survive the Attack of the Zombie Pointers? - Wong, McKenney, Michael - CppCon 2019
Показать описание
—
—
—
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.
—
*-----*
*-----*
—
—
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
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.
—
*-----*
*-----*
Комментарии