Re: Strange "Illegal Instruction" errors in 1.3.90+

Robert de Bath (robert@mayday.compulink.co.uk)
Thu, 25 Apr 1996 06:31:04 +0100 (BST)


On Fri, 19 Apr 1996, Aaron Fredrick Tiensivu wrote:

> I don't get "sig 11" errors like most people were complaining about up til
> 1.3.90, but I get "Illegal Instruction" errors during kernel compiles (while
> running 1.3.90 or .91) ... and when it aborts, even if I do a "ps -auxw", it
> will say "Illegal instruction" (yes, I'm running procps .99a, before I get
> flamed), reboot, things will be fine again.
That sounds just like the problem I have with 1.3.91, Have you tried running
the make -j script (attached below) For me it can trigger lots of nastyness.

When I got the SIGILL's I decided it was buffer cache corruption, I cleared
the cache using a 'calloc(MEMSIZE,1)' style program and everything worked.

Are you also getting 'release: as kernel stack corruption. Aiee.' in your
syslogs ?

> Anyone else having those problems? 'Make' will abort with error 132 when it
> happens.
Normal.

> I suspect either this is still a little buglet running around in the kernel or
> my chip is bad or motherboard. Next thing I'm going to try is the old 1.2
> memcpy_tofs. Wish me luck. :)

One thing I odd about the set I was using; the root fs is umsdos. I finally
plucked up the courage to run 1.3.91 with my big ext2 fs as root. It seems
to be OK; the make -j script completes successfully or gives some 'cpp
memory exhausted' messages (both good). When it's running top -q will often
Segfault, but I expect that's top's problem.

If I do the make_j script with the current directory on the umsdos partition
then it goes all horrible - I had lots of processes locked in 'D' state just
now...

make zImage will work with a ext2 root not with a umsdos root.

BTW: The ext2 fs and the umsdos fs are on the same drive.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#! /bin/sh

cp /usr/src/linux/kernel/sysctl.c sysctl-0.c
cat >Makefile <<\EOF
OBJS=\
EOF
NUM=0
while [ $NUM != 100 ]; do
echo "sysctl-$NUM.i \\" >>Makefile
NEWNUM=`expr $NUM + 1`
ln sysctl-$NUM.c sysctl-$NEWNUM.c
NUM=$NEWNUM
done
cat >>Makefile <<\EOF

.SUFFIXES: .i .c
all: $(OBJS)

clean:
rm sysctl-*.[ci]
rm Makefile

%.i: %.c
gcc -E $< -o $@
EOF
make -j
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

--
Rob.                           (Robert de Bath <robert@mayday.compulink.co.uk>)