Re: [PATCH V2] futex: set FLAGS_HAS_TIMEOUT during demux forFUTEX_WAIT

From: Eric Dumazet
Date: Thu Apr 14 2011 - 15:48:58 EST


Le jeudi 14 avril 2011 Ã 12:11 -0700, Darren Hart a Ãcrit :

> I would say anything calling SYS_FUTEX is the futex slow path. The fast
> path is cmpxchg in user space.
>

Thats not a good reason to make it slower than necessary...

> It was. My thinking was that it was inconsistent to have the
> FLAGS_HAS_TIMEOUT only available if a signal was received and a restart
> was required. This is the only place it is currently needed, but the
> inconsistency concerns me.
>

I dont call this inconsistency, but right place for the code.

> How about the following, it reuses an existing if block and ensure the
> FLAGS_HAS_TIMEOUT is always set if a timeout is used. It means the
> FLAG_HAS_TIMEOUT is not available in the other futex_* routines with
> timeouts (futex_lock_pi and futex_wait_requeue_pi), but they use absolute
> timeouts and don't need it for restart - I can agree to that, although
> I'm not keen on FLAG_HAS_TIMEOUT not being set whenever timeout is. That
> could be added in the same way to the other functions if needed in the
> future.

I dont understand why you insist setting in fast path a flag that is
useless, unless we hit restart logic [ What I call the slow path in
futex syscall ]

It seems more natural and efficient to me to go back to previous code.

Maybe rename FLAG_HAS_TIMEOUT to FLAG_HAS_TIMEOUT_ON_RESTART if you
want, to make clear what is the meaning of this flag.

Now if you have plans to use this flag in futex code, outside of restart
logic, please share them with us :)



--
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/