On 05/02/2018 04:32 PM, Andy Lutomirski wrote: >> But, where do those come from in this scenario? I'm not getting >> the secondary mechanism is that *makes* them unsafe. > pkey_alloc() itself. If someone tries to allocate a key with a given > default mode, unless there’s already a key that already had that > value in all threads or pkey_alloc() needs to asynchronously create > such a key. I think you are saying: If a thread calls pkey_alloc(), all threads should, by default, implicitly get access. That broadcast-to-other-threads is the thing that the current architecture doesn't do. In this situation, CPU threads have to go opt-out of getting access to data protected with a given, allocated key. Right?