linux-mips
[Top] [All Lists]

[PATCH] ll/sc emulation fix (was: Kernel vs. glibc problems)

To: debian-mips@lists.debian.org, linux-mips@linux-mips.org, ralf@gnu.org
Subject: [PATCH] ll/sc emulation fix (was: Kernel vs. glibc problems)
From: Karsten Merker <karsten@excalibur.cologne.de>
Date: Sun, 4 Apr 2004 20:55:51 +0200
In-reply-to: <20040404173512.GA31039@excalibur.cologne.de>
Mail-followup-to: Karsten Merker <karsten@excalibur.cologne.de>, debian-mips@lists.debian.org, linux-mips@linux-mips.org, ralf@gnu.org
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20040404115212.GA22445@excalibur.cologne.de> <20040404155010.GA1975@bogon.ms20.nix> <20040404173512.GA31039@excalibur.cologne.de>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.3.28i
On Sun, Apr 04, 2004 at 07:35:12PM +0200, Karsten Merker wrote:
> On Sun, Apr 04, 2004 at 05:50:10PM +0200, Guido Guenther wrote:
> > On Sun, Apr 04, 2004 at 01:52:12PM +0200, Karsten Merker wrote:
> > > On a DECstation 5000/20, having an R3000, the following combinations work:
> > > - Debian 2.4.19 plus Debian/Woody glibc (2.2.5)
> > > - Debian 2.4.19 plus Debian/Sarge glibc (2.3.2)
> > > - CVS 2.4.25 from 2004/03/25 plus Debian/Woody glibc (2.2.5)
> > > But running the same CVS 2.4.25 with the Debian/Sarge glibc (2.3.2)
> > > causes (at least) ls, sleep and tar to die with "illegal instruction".
> 
> > What is the illegal instruction? Gdb should tell.
> 
> It is an "ll" instruction in libpthread (checked in the cases of
> ls, sleep and tar). ll/sc should be emulated by the kernel on R3k,
> so it looks like there is a problem with the emulation code.

The reason seems to be in arch/mips/kernel/cpu-probe.c. In function
cpu_probe_legacy the following flags are set for R2k/R3k:

                c->options = MIPS_CPU_TLB | MIPS_CPU_NOFPUEX |
                             MIPS_CPU_LLSC;

i.e. R2k and R3k are assumed to have ll/sc implemented, so the
ll/sc emulation does not get called. The following micro-patch
should fix that.

Regards,
Karsten
-- 
#include <standard_disclaimer>
Nach Paragraph 28 Abs. 3 Bundesdatenschutzgesetz widerspreche ich der Nutzung
oder Uebermittlung meiner Daten fuer Werbezwecke oder fuer die Markt- oder
Meinungsforschung.

Attachment: ll-sc-emu-against-2.4.25.diff
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>