From owner-freebsd-emulation@FreeBSD.ORG Wed Oct 13 10:33:00 2004 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AAA9216A4CE for ; Wed, 13 Oct 2004 10:33:00 +0000 (GMT) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0703F43D48 for ; Wed, 13 Oct 2004 10:32:59 +0000 (GMT) (envelope-from avg@icyb.net.ua) Received: from [212.40.38.87] (oddity.topspin.kiev.ua [212.40.38.87]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id NAA10645 for ; Wed, 13 Oct 2004 13:32:55 +0300 (EEST) (envelope-from avg@icyb.net.ua) Message-ID: <416D0457.2090106@icyb.net.ua> Date: Wed, 13 Oct 2004 13:32:55 +0300 From: Andriy Gapon User-Agent: Mozilla Thunderbird 0.7.3 (X11/20040831) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-emulation@freebsd.org References: <416CF40A.3070008@icyb.net.ua> In-Reply-To: <416CF40A.3070008@icyb.net.ua> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Re: linux threaded application hang X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Oct 2004 10:33:00 -0000 on 13.10.2004 12:23 Andriy Gapon said the following: > #it seems that main thread starts to wait on some condition > #until it is awaken by child thread by a signal > 5715 setmqcap CALL linux_rt_sigsuspend(0xbfbfd910,0x8) > 5716 setmqcap CALL read(0x3,0x805b264,0x94) > 5716 setmqcap GIO fd 3 read 148 bytes > 5716 setmqcap RET read 148/0x94 > 5716 setmqcap CALL linux_mmap(0x805b194) > 5716 setmqcap RET linux_mmap -1086394368/0xbf3ef000 > 5716 setmqcap CALL mprotect(0xbf3ef000,0x1000,0) > 5716 setmqcap RET mprotect 0 having read more about old linux threads, it seems that this "child thread" (5716) is what they call "thread manager" > #child thread creates another thread, that's probably not important > 5716 setmqcap CALL linux_clone(0xf21,0xbf3ffbf8) > 5716 setmqcap RET linux_clone 5717/0x1655 > 5717 setmqcap RET linux_fork 0 and this is an actual new thread > #child thread wants to wake up main thread (pid == 5715 == 0x1653) > #by sending signal 0x20 == 32 (== linux SIGRTMIN ?) > 5716 setmqcap CALL linux_kill(0x1653,0x20) > > #but it seems to fail.. or not ? > #I am not sure how to interpret "RESTART" here > 5716 setmqcap RET linux_kill RESTART -- Andriy Gapon