Messages in this thread | | | Date | Thu, 15 Jan 2009 14:15:56 +0000 (GMT) | From | "Maciej W. Rozycki" <> | Subject | Re: Is 386 processor still supported? |
| |
On Thu, 15 Jan 2009, Alan Cox wrote:
> > UP emulation of CMPXCHG and XADD for userland should be rather trivial, > > so why not include it like with LL/SC for MIPS? > > Why not just ship an additional libc with the right options ?
Does not work for MIPS as glibc has no equivalent code for pre-LL/SC CPUs and LL/SC is always used. For the i386 the situation seems worse yet as for pre-i486 CPUs a generic C implementation of compare-and-exchange is used guaranteeing silent thread unsafety. :(
IMO, a kernel emulation of CMPXCHG and XADD (both are used by sysdeps/i386/i486/bits/atomic.h in glibc) with an optional LOCK prefix, guaranteeing UP atomicity would be a cheap way to provide long-term i386 userland support with little burden for both Linux and respective user software maintainers. Certainly it adds some bloat to the kernel, but I think it is not an option that should be outright dismissed without consideration.
Maciej
| |