This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Support for Intel X1000


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]