[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: