Messages in this thread |  | | | Date | Thu, 9 Dec 1999 05:37:20 -0500 (EST) | | From | Rik Faith <> | | Subject | Re: linux-2.3.31: drivers/char/drm/drmP.h does not allow 386 build |
| |
On Wed 8 Dec 1999 22:38:31 -0800, Adam J. Richter <adam@yggdrasil.com> wrote: > > As of linux-2.3.31, drivers/char/drm/drmP.h deliberately aborts > the compile the CPU type in the kernel build is configured to be 386. > The problem is that this is the way that one builds a kernel that can > run on any x86 (to avoid things like generating the BSWAP instruction, > which the 386 lacks). It does not necessarily mean that the CPU is > actually a 386. This change to drmP.h makes it impossible to build a fully > configured for the full x86 processor family. If there is some reason > why the "direct rendering infrastructure" should not run on a 386, then > this check should be done at run time, not compile time.
We need to use the CMPXCHG instruction for fast locking, and this instruction is not available on the 386. Would it be sufficient if we compiled using the CMPXCHG instruction and then did a run-time test for the 386 and never executed this instruction? This is approximately what we did before 2.3.31. (386s are too slow to make direct-rendering a viable option, so we don't support the DRI on 386s [and all modern graphics cards are PCI or AGP, and most (all?) 386s don't have these busses available].)
I'll CC Richard Henderson, since this impacts i386 and Alpha kernel include files. The other alternative is to implement the generic cmpxchg routine for 386's using other instructions, but this seems like a waste of effort if no one will ever use the routine.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
|  |