This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Support for Intel X1000
- From: "Kinsella, Ray" <ray dot kinsella at intel dot com>
- To: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Cc: "carlos at redhat dot com" <carlos at redhat dot com>
- Date: Tue, 12 May 2015 10:28:11 +0000
- Subject: Support for Intel X1000
- Authentication-results: sourceware.org; auth=none
Hi all,
The Intel X1000 (32bit Pentium ISA) has a bug on the LOCK prefix,
that cannot be fixed with an updated microcode and cannot be worked
around by trapping elsewhere (in the Linux Kernel). This bug results in
segfaults anywhere LOCK prefix has been used (lowlevel locks, atomics
etc)
The only workable solution is the following steps:-
1. Not using the LOCK prefix on the Intel X1000. This can be achieved
either by defining UP (uniprocessor) or telling the assembler to omit
the LOCK prefix "momit-lock-prefix=yes".
2. OS builders creating a UP version of glibc targeted for the X1000.
The runtime linker then decides which glibc to load based on a HWCAP,
in a similar way to how the Xen specific glibc is loaded.
Clearly no changes are needed to glibc for this - as it already provides
a UP build, however I wanted to socialize the approach to fixing the
issue
for comments here. Relevant patches will land with:-
1. The OS - LKML for the Linux Kernel to indicate a HWCAP for the
broken LOCK prefix on X1000.
2. The OS Builders - Debian and others to build a version of glibc
specifically to work around this issue and put there library where
the runtime linker can find it.
Feedback is welcome.
Ray Kinsella