Re: [RFC PATCH] tools/memory-model: Remove (dep ; rfi) from ppo

From: Peter Zijlstra
Date: Tue Feb 26 2019 - 05:46:17 EST


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?