| Date | Thu, 7 Nov 2019 10:49:43 +0100 | From | Peter Zijlstra <> | Subject | Re: [patch 09/12] futex: Provide state handling for exec() as well |
| |
On Wed, Nov 06, 2019 at 10:55:43PM +0100, Thomas Gleixner wrote:
> +static void futex_cleanup_end(struct task_struct *tsk, int state) > +{ > + /* > + * Lockless store. The only side effect is that an observer might > + * take another loop until it becomes visible. > + */ > + tsk->futex_state = state;
As I mentioned yesterday, paranoia would've made me write this as smp_store_release(), also to avoid it creaping back into the locked region.
That is, the comment above deals with it being visible late, but it could be visible early.
At the same time, if this is a release, what does it pair with. The obvious place would be the load in handle_exit_race() but that didn't want to make sense last night -- and I'm not sure it wants to make more sense today.
|