On Thu, Sep 24, 2015 at 3:12 PM, Aurelien Jarno <[email protected]> wrote: > On 2015-09-24 14:19, Andy Lutomirski wrote: >> Hi- >> >> It looks like 32-bit x86 Debian glibc doesn't use AT_SYSINFO. This >> kills syscall performance. Upstream glibc as well as Fedora's glibc >> work fine. >> >> This test: >> >> https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/entry_compat&id=9d742073d4c0449b262dbe0a3dab4a7c1d831500 >> >> inadvertently found this issue. >> >> Any ideas? I'm only barely a Debian user -- I have a Debian-based test VM. > > By default, the 32-bit glibc on Debian is built for i586, which does not > have the sysenter/syscall instructions. Therefore it doesn't use > AT_SYSINFO.
I find this a bit odd. glibc isn't supposed to have those instructions, and i586 kernels will still provide AT_SYSINFO (I think), and it'll still work. Is this a Debian-specific thing? > > Now you can install the libc6-i686 package, which as it's name says is > built for i686, and thus can use the sysenter/syscall instructions and > AT_SYSINFO. Then your test passes successfully. Ben Hutchings just figured that out, too. debootstrap doesn't install libc6-i686, though. --Andy

