Re: Debian's 32-bit glibc vs AT_SYSINFO
On Thu, Sep 24, 2015 at 3:12 PM, Aurelien Jarno <aurelien@aurel32.net> 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
Reply to: