Futex Question (64 bits?)

From: Ryan Nicholl
Date: Mon Mar 24 2014 - 17:20:08 EST


I would like to know if it would be possible to use a 64 bit futex
call? If not, I would like to request it be added. (It is acknowledged
in the manpages that it must be added eventually anyway.)

I am programming a C++11+ library. One of the constructed features is
a "locking pointer". Unfortunately, pointers are usually 64 bits,
while the futex call supports only 32 bits. I could not discover any
documented way to invoke a 64 bit futex call.

It's unfortunate in that the futex call must have a timeout set
because of the possible deadlock condition where only the half of the
pointer not futexed is modified between the time the system call is
entered and executed.

This creates a situation that prevents the locking_ptr from being
realtime safe unless the timeout is set at a very low value.
Furthermore, this causes excess CPU usage due to spurious wakeups.

Thank you,
Ryan Nicholl
--
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/