On Tue, Mar 8, 2016 at 10:47 AM, H. Peter Anvin <[email protected]> wrote: > On 03/08/16 10:45, Andy Lutomirski wrote: >> >> s/modern/most, perhaps? >> >> I'm hoping that some day Bionic goes away and gets replaced by musl. >> >> Of course, musl doesn't always use fast syscalls because it needs a >> vdso facility that doesn't currently exist. I'll deal with that >> eventually. >> > > You don't actually need actual DSO support to support fast system calls > on i386. Even klibc uses them now, and the additional code to support > it is trivial.
That's not the issue. The issue is that musl does something crazy^Wclever to support POSIX pthread cancellation, and it involves being able to tell whether a signal's ucontext points to a syscall and, if so, what the return address is. This is straightforward with an inlined int $0x80, but doing it reliably with the current vdso design would requiring parsing the DWARF data, and I can't really blame musl for not wanting to do that. There was a thread awhile back about adding a new vdso helper to do this. I think I even had some code for it. If I find time, I'll try to send patches for 4.7. --Andy

