On Tue, Feb 26, 2019 at 10:30:09AM +0100, Peter Zijlstra wrote: > On Mon, Feb 25, 2019 at 09:55:17AM -0800, Paul E. McKenney wrote: > > But if you know of any code in the Linux kernel that needs to compare > > pointers, one of which might be in the process of being freed, please > > do point me at it. > > I'm having the utmost difficulty of understanding why that would be a > problem. It's just a value. Freeing memory does not affect the actual > memory or any pointers to it. > > *confusion* > > None of this makes any kind of sense. I found and started to read: www.open-std.org/jtc1/sc22/wg14/www/docs/n2311.pdf and that's all massive bong-hits. That's utterly insane. Even the proposed semantics are crazy; they include UB and are therefore broken on principle. But also; the provenance ID has words like: "allocated storage duration", how is that well defined in the context of concurrent execution? Also, isn't the kernel filled with inter-object pointer arithmetic? PNVI also looks like something that simply cannot work; how are we at compile time supposed to know the active (concurrent modified) heap layout. What is a 'live' object?