Paul McKenney
Meta 资深内核专家,世界级并行编程专家
Paul E. McKenney是世界级并行编程专家,Linux 内核中 RCU 实现和 rcutorture 测试模块的维护者,也是RCU的发明人。对于实时操作系统内核同步机制(例如 Linux 中的实时 RCU)、Linux 和 UNIX 操作系统内核中的 SMP/NUMA 可扩展性和性能、网络性能分析、路由和拥塞控制, 嵌入式实时应用程序有着丰富的经验和研究。 Paul 曾担任IBM Linux 技术中心杰出工程师,发表过 200 多篇论文,拥有 100 多项专利。他也是经典图书《深入理解并行编程》的作者。他的专长包括多线程和多核系统的性能编程、NUMA 架构、开源软件项目。
演讲主题
* 生存期结束时的指针清零
C++ 标准目前规定,当对象的生存期结束时,指向该对象的所有指针都将失效 [basic.life]。尽管这允许进行一些可能有价值的额外诊断和优化,但这与长期以来的使用习惯不符,特别是对于依赖于这类指针的加载、存储、相等性比较甚至解引用操作的各种并发和顺序算法。类似的问题也源于 C++ 指针来源(pointer provenance)的对象生存期方面。 本演讲将探讨指针清零背后的动机,深入讲解历史悠久的 LIFO Push 原子栈示例,并概述潜在的解决方案。其目标当然是允许以自然的方式编写并发代码,同时也允许编译器和工具进行合理的指向分析(points-to analysis)。