Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2001 17:21:54 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        freebsd-alpha@freebsd.org
Cc:        jhb@freebsd.org
Subject:   user process faulting on kernel address
Message-ID:  <15026.37378.477855.889651@grasshopper.cs.duke.edu>

next in thread | raw e-mail | index | archive | help

When running a linuxthreads app which basically sits in a loop
doing a pthread_create()/pthread_join() of a thread which just
exits, I'll occasionally see a very interesting thing -- 
the app dies on an instruction fault on a kernel address.

Enabling the DEBUG printtrap() calls in trap yeilds this information:

login: 
fatal user trap:

    trap entry = 0x2 (memory management fault)
    a0         = 0xfffffc0000418be0
    a1         = 0x1
    a2         = 0xffffffffffffffff
    pc         = 0xfffffc0000418be0
    ra         = 0x11ffbfc4
    curproc    = 0xfffffe0006824cc0
        pid = 18788, comm = ex6


Note that it is an instruction fault (a2 == -1) and the faulting
address maps to the bottom of witness_exit:

(kgdb) l *0xfffffc0000418be0
0xfffffc0000418be0 is in witness_exit (../../kern/kern_mutex.c:1262).
1257            m->mtx_line = line;
1258            m->mtx_file = file;
1259            p = curproc;
1260            MPASS(m->mtx_held.le_prev == NULL);
1261            LIST_INSERT_HEAD(&p->p_heldmtx, (struct mtx*)m, mtx_held);
1262    }
1263
1264    void
1265    witness_exit(struct mtx *m, int flags, const char *file, int line)
1266    {


The $ra looks reasonable, it is at least a userspace stack address.

I think somebody saw this a while ago, but I cannot find their
message..

Any ideas?

Drew

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15026.37378.477855.889651>