public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Brandon Stewart <rbrandonstewart@yahoo.com>
To: linux kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Requested FAQ addition - Mandrake and partial-i686 platforms
Date: Tue, 12 Aug 2003 10:48:59 -0400	[thread overview]
Message-ID: <3F38FE5B.1030102@yahoo.com> (raw)

Apparently, there is an issue with glibc on versions less than 2.3.1-15 
(and maybe others), where it mistakenly treats CPUs as full i686 
compliant when they only execute a subset of the i686 instructions. For 
example, the VIA C3 supports pretty much everything i686 except CMOV, 
yet the broken versions of glibc will detect it as fully i686 compliant.

 From someone who emailed me privately, this apparently affects K6-III 
as well. Possibly other Cyrix or AMD CPUs are affected, though I don't 
have a complete list.

The problem is that Mandrake 9.1 ships with a broken glibc. So you would 
expect that the incorrectly detected CPUs just wouldn't work. But 
apparently, Mandrake added a CMOV instruction emulator patch to their 
kernel, both the one that ships precompiled and the source rpm.

So people will find that compiling the Mandrake version works fine, yet 
any kernel downloaded from kernel.org, 2.6 or other, will not work at 
all. The symptom is that booting the shiny new kernel will hang after 
"Freeing unused kernel memory". Doing a magic sysreq will reveal that 
/sbin/init is executing do_invalid_op(). You can keep pressing the magic 
sysreq stack dump key, and you will keep getting a new stack trace. 
Caps-lock works, and CTRL-ALT-DEL will reboot the machine.

There are three possible workarounds:
1) Upgrade glibc to a working version. I haven't done this myself, so I 
don't know if the bug has been fixed yet. But it would be the best solution.
2) Remove i686 libraries from glibc. This can be done by 'mv /lib/i686 
/lib/i686.invalid'. This is what I did, and it works. While some 
performance is lost, it's not noticeable, especially given that the 
stock Mandrake kernel is i386 compatible, and so has limited optimization.
3) Reapply the CMOV emulation patch to your downloaded kernel. Not 
recommended since it turns one CPU cycle into 400.

-Brandon


             reply	other threads:[~2003-08-12 14:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-12 14:48 Brandon Stewart [this message]
2003-08-12 14:58 ` Requested FAQ addition - Mandrake and partial-i686 platforms Valdis.Kletnieks
2003-08-12 15:46 ` Dave Jones
2003-08-12 16:17 ` Alan Cox
2003-08-13 16:24   ` Juan Quintela
2003-08-17 18:51     ` Jan Rychter
2003-08-17 19:27       ` Alan Cox
2003-08-17 20:22         ` Jamie Lokier
2003-08-17 21:04           ` Alan Cox
2003-08-17 21:43       ` Dave Jones
2003-08-12 18:40 ` insecure

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F38FE5B.1030102@yahoo.com \
    --to=rbrandonstewart@yahoo.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox