bug found in 2.1.128

Rik van Riel (H.H.vanRiel@phys.uu.nl)
Wed, 18 Nov 1998 13:33:21 +0100 (CET)


Hi,

it seems like I found the bug (or at least caught the
error message) that made it impossible to run fork()ing
processes with SCHED_IDLE and/or caused other havoc
upon unsuspecting users.

Running a gcc with SCHED_IDLE caused gcc to die with SEGFAULT
(sig11) and made the kernel spit out the following message:

Nov 17 21:42:26 mirkwood kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000078
Nov 17 21:42:26 mirkwood kernel: current->tss.cr3 = 0272a000, 0r3 = 0272a000
Nov 17 21:42:26 mirkwood kernel: *pde = 00000000

I traced this error to arch/i386/mm/fault.c and I will be
digging around a bit more to try what caused it.

The strange things with this error are:
o it is only triggered by SCHED_IDLE processes (on my system
anyway -- I don't know about other systems)
o it is a _kernel_ NULL pointer dereference, not a userland
one -- does this mean that the kernel fouled up somewhere?
o the error basically is a page fault gone wrong, what changed
to make this possible?
o there seem to be no dangerous things in the scheduling code
nor in my patch to it -- what could we be triggering?

Since the error occurred with SCHED_IDLE processes specifically,
my main suspect is kernel/fork.c, but I'm probably wrong there :)

cheers,

Rik -- slowly getting used to dvorak kbd layout...
+-------------------------------------------------------------------+
| Linux memory management tour guide. H.H.vanRiel@phys.uu.nl |
| Scouting Vries cubscout leader. http://www.phys.uu.nl/~riel/ |
+-------------------------------------------------------------------+

-
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/