Re: Question about clearing of tsk->robust_list in clone

From: Peter Zijlstra
Date: Tue Feb 15 2011 - 09:01:10 EST


On Tue, 2011-02-15 at 14:16 +0100, Thomas Gleixner wrote:
>
> And I do not buy the argument about "complex glibc code" at all. glibc
> already handles it for pthread_create() so why the hell can't it
> handle it for fork() ?

Going by comment #9 they think calling sys_set_robust_list() on every
fork() is too expensive for them, but realistically we cannot do
anything about it, ->robust_list is strictly task state.

I also think their suggestion in comment #11 (lazy state) is flawed,
what if the parent never users robust futexes, in that case the state
will indicate not to initialize the robust state for its children, again
leading to the observed wreckage.

Realistically libpthread should register an on_fork() callback to ensure
the state is properly propagated.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/