From owner-freebsd-alpha Fri Mar 16 14:22:31 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 162CB37B719; Fri, 16 Mar 2001 14:22:25 -0800 (PST) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id RAA08753; Fri, 16 Mar 2001 17:22:24 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.3/8.9.1) id f2GMLsA82142; Fri, 16 Mar 2001 17:21:54 -0500 (EST) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15026.37378.477855.889651@grasshopper.cs.duke.edu> Date: Fri, 16 Mar 2001 17:21:54 -0500 (EST) To: freebsd-alpha@freebsd.org Cc: jhb@freebsd.org Subject: user process faulting on kernel address X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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