linux/alpha 2.1.102 dies in die_if_kernel

Stephen Williams (steve@icarus.com)
Fri, 23 Oct 1998 13:20:12 -0700


I'm experiencing lockups on my PC164. I finally got it to happen
without an X display, so I was able to get some information, and
I see in the Oops trace the die_if_kernel message from traps.c
The following is the little bit of code that seems to be printing
that message:

if (current->tss.flags & (1UL << 63)) {
printk("die_if_kernel recursion detected.\n");
sti();
while (1);
}

That while loop sure would do it. It looks like an Oops oopsed. The
call to die_if_kernel is from do_page_fault in arch/alpha/mm/fault.c.
I got the "Unable to handle paging request at virtual address XXX"
message from this code:

printk(KERN_ALERT "Unable to handle kernel paging request at "
"virtual address %016lx\n", address);
die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16);
do_exit(SIGKILL);

I didn't write down the actual address, but I think it was an "8". Sure
sounds broken.

The trace looks like this all together:

close_fp
do_exit
die_if_kernel
do_page_fault
entMM
sys_ioctl
strace

Yes, this program is being run under gdb. There is a chance that my
driver is at fault, although it generally works very well and I've been
running it in a variety of situations. I have no immediate reason to
doubt it, although it *does* support mmap. Still, I can't imagine why
the kernel would be page-faulting.

I will try to repeat this under more recent kernels, but note that 2.1.125
doesn't even compile for me. (egcs 1.1)

-- 
Steve Williams                "The woods are lovely, dark and deep.
steve@icarus.com              But I have promises to keep,
steve@picturel.com            and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."

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