Date: Sun, 9 Sep 2012 23:37:44 +0100 From: Justin Cormack <justin@...cialbusservice.com> To: musl@...ts.openwall.com Subject: Re: capset() capget() syscalls On 9 Sep 2012 23:26, "Rich Felker" <dalias@...ifal.cx> wrote: > > On Sun, Sep 09, 2012 at 11:12:01PM +0100, Justin Cormack wrote: > > On Sun, Sep 9, 2012 at 10:55 PM, Rich Felker <dalias@...ifal.cx> wrote: > > > With something like futex that's a trivial syscall, I'm not sure what > > > qualifies it for a separate lib rather than inclusion in libc. The > > > library would be <20 bytes of code on most archs... That's not to say > > > I think we have to expose it in musl, but I think using a separate > > > library (especially if there's any chance of it being built as a .so > > > rather than just .a) is a worse choice than just writing > > > syscall(SYS_futex, ...) in your source... > > > > The manpage says > > > > To reiterate, bare futexes are not intended as an easy-to-use > > abstraction for end-users. (There > > is no wrapper function for this system call in glibc.) > > Implementors are expected to be assembly > > literate and to have read the sources of the futex userspace > > library referenced below. > > > > I thought (from memory) the non-contended case required architecture > > specific assembly, the syscall just dealt with contended case. So the > > library needs to provide the other stuff to make it usable. Its not a > > lot, and must be there to use these for threading I guess, but doesnt > > have standard names? > > "GNU C" (GCC-specific) or C11 atomics will work perfectly well in > place of assembly; the whole point of exposing the futex syscall to > the application would be for it to do its own waiting in conjunction > with atomics (whether implemented with GNUC, C11, or asm). The futex > API is mainly for waiting on locks or waking waiters; for the most > part it does not even provide an API for obtaining locks, although the > prio-inheritance stuff can provide full locking in kernelspace, albeit > very inefficiently. We're talking 200x slower than calling > pthread_mutex_lock, so it would be utterly useless.. > > Rich I should make myself a working example then. It sounds rather simpler than the wording on the man page... Thanks Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.