Re: futex(2) man page update help request

From: Darren Hart
Date: Thu May 15 2014 - 11:46:58 EST


On 5/15/14, 6:46, "Michael Kerrisk (man-pages)" <mtk.manpages@xxxxxxxxx>
wrote:

>On 05/15/2014 07:21 AM, Darren Hart wrote:
>> On 5/14/14, 17:18, "H. Peter Anvin" <hpa@xxxxxxxxx> wrote:
>>
>>> On 05/14/2014 09:18 AM, Darren Hart wrote:
>>>>
>>>> However, unless I'm sorely mistaken, the larger problem is that glibc
>>>> removed the futex() call entirely, so these man pages don't describe
>>>> something users even have access to anymore. I had to revert to
>>>>calling
>>>> the syscalls directly in the futextest test suite because of this:
>>>>
>>>>
>>>>
>>>>http://git.kernel.org/cgit/linux/kernel/git/dvhart/futextest.git/tree/i
>>>>nc
>>>> lu
>>>> de/futextest.h#n67
>>>>
>>>
>>> This really comes down to the fact that we should have a libinux which
>>> contains the basic system call wrapper machinery for Linux specific
>>> things and nothing else.
>>>
>>> syscall(3) is toxic and breaks randomly on some platforms.
>>
>> Peter Z and I have had a good time discussing this in the past.... And
>> here it is again. :-)
>
>People have a number of times noted that there are problems
>with syscall(), but I'm not knowledgeable on the details.
>I'd happily take a patch to the man page (which, for historical
>reasons, is actually syscall(2)) that explains the the problems
>(and ideally notes those platforms where there are no problems).


>From my perspective, a named interface with specific documented interfaces
is far more usable than a vargs direct syscall. That just leaves all kinds
of room for error - which of course is why we all write our own wrappers
in our apps rather than use it directly... If we all do it, it seems to me
that is a strong indicator we should provide it in some kind of common
library. Maybe that's libc... Maybe that's libnix...
--
Darren Hart Open Source Technology Center
darren.hart@xxxxxxxxx Intel Corporation



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