From owner-freebsd-hackers@FreeBSD.ORG Thu May 22 12:12:38 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD1D237B401 for ; Thu, 22 May 2003 12:12:38 -0700 (PDT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08B6F43F3F for ; Thu, 22 May 2003 12:12:38 -0700 (PDT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.9/8.12.9) id h4MJCYpU019164; Thu, 22 May 2003 14:12:34 -0500 (CDT) (envelope-from dan) Date: Thu, 22 May 2003 14:12:34 -0500 From: Dan Nelson To: Julian Elischer Message-ID: <20030522191234.GA13498@dan.emsphone.com> References: <20030522174334.GC1694@dan.emsphone.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-OS: FreeBSD 5.1-BETA X-message-flag: Outlook Error User-Agent: Mutt/1.5.4i cc: freebsd-hackers@freebsd.org cc: Daniel Eischen Subject: Re: libkse and SMP (was Re: USB bulk read & pthreads) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 19:12:39 -0000 In the last episode (May 22), Julian Elischer said: > what's 'pike'? > > I assume it's one of /usr/ports/lang/pike72 or /usr/ports/lang/pike74? > if so what do I need to do to du0plicate the hang.. you said it is > predictable.. Yep, that's it. After a couple more test lockups, it looks like simply running the threads configure test is enough to trigger the problem. The pike74 port hasn't been updated to the new bsd.gnome.mk style, so it doesn't build. The quickest way to reproduce the hang is: fetch ftp://pike.ida.liu.se/pub/pike/latest-stable/Pike-v7.4.20.tar.gz, extract it, run sed -i.bak -e 's/-pthread/-lkse/' src/configure, then run make. It consistently dies for me at "checking posix threads". I even get a panic now: checking if this version of FreeBSD may have working threads... yes checking for pthread-config... no checking -lkse... yes checking Initial stack limit... Bus error (core dumped) 1048576 checking for pthread_init... no checking for pthread_mutexattr_init... yes checking for pthread_kill... yes checking posix threads... panic: mtx_lock() of spin mutex └┬<▀é└B @ ../../../vm/vm_map.c:2142 cpuid = 1; lapic.id = 00000000 Stack backtrace: panic(c03e5cf4,c082e000,c03f59e2,85e,d1d21000) at panic+0x11b _mtx_lock_flags(c21a42c0,0,c03f59e2,85e,db9e8b9c) at _mtx_lock_flags+0x84 vm_map_delete(c0831000,d1d1d000,d1d21000,dfe1dda0,c3ed5e40) at vm_map_delete+0x19b vm_map_remove(c0831000,d1d1d000,d1d21000,121,c3ed5d10) at vm_map_remove+0x55 cpu_thread_clean(c3ed5d10,6ab,c3ed5d10,c3ed5e40,db9e8c3c) at cpu_thread_clean+0x66 thread_free(c3ed5d10,0,c03e7262,365,c492e000) at thread_free+0x14 thread_reap(c3e45780,ffffffff,0,28c,0) at thread_reap+0x124 wait1(c3821be0,db9e8d10,0,db9e8d40,c039b603) at wait1+0x7d6 wait4(c3821be0,db9e8d10,c03fb8ec,3fb,4) at wait4+0x20 syscall(c038002f,2f,2f,1,80ff100) at syscall+0x3a3 Xint0x80_syscall() at Xint0x80_syscall+0x1d --- syscall (7), eip = 0x807c1eb, esp = 0xbfbff01c, ebp = 0xbfbff038 --- boot() called on cpu#1 Manually running the "checking posix threads" conftest by itself works fine, though... -- Dan Nelson dnelson@allantgroup.com