From owner-freebsd-current@FreeBSD.ORG Mon May 25 21:31:10 2015 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7ECCEC49 for ; Mon, 25 May 2015 21:31:10 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.net) Received: from heemeyer.club (heemeyer.club [IPv6:2001:19f0:6400:80a1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "heemeyer.club", Issuer "heemeyer.club" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2BFC575 for ; Mon, 25 May 2015 21:31:10 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.net) Received: from dchagin.static.corbina.net (dchagin.static.corbina.ru [78.107.232.239]) by heemeyer.club (8.15.1/8.15.1) with ESMTPS id t4PLV4hj023003 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 May 2015 21:31:06 GMT (envelope-from dchagin@dchagin.static.corbina.net) X-Authentication-Warning: heemeyer.club: Host dchagin.static.corbina.ru [78.107.232.239] claimed to be dchagin.static.corbina.net Received: from dchagin.static.corbina.net (localhost [127.0.0.1]) by dchagin.static.corbina.net (8.15.1/8.15.1) with ESMTPS id t4PLV4gg021383 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 26 May 2015 00:31:04 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.net) Received: (from dchagin@localhost) by dchagin.static.corbina.net (8.15.1/8.15.1/Submit) id t4PLV3LS021382; Tue, 26 May 2015 00:31:03 +0300 (MSK) (envelope-from dchagin) Date: Tue, 26 May 2015 00:31:03 +0300 From: Chagin Dmitry To: Larry Rosenman Cc: freebsd-current@FreeBSD.org Subject: Re: Linuxulator: CRASH Message-ID: <20150525213103.GA21369@dchagin.static.corbina.net> References: <20150525204118.GA1176@borg.lerctr.org> <20150525205536.GA6195@dchagin.static.corbina.net> <20150525211232.GA1143@borg.lerctr.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150525211232.GA1143@borg.lerctr.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2015 21:31:10 -0000 On Mon, May 25, 2015 at 04:12:32PM -0500, Larry Rosenman wrote: > On Mon, May 25, 2015 at 11:55:36PM +0300, Chagin Dmitry wrote: > > On Mon, May 25, 2015 at 03:41:18PM -0500, Larry Rosenman wrote: > > > I have a boinc-client installation running World Community Grid science > > > that's been working fine for months. > > > > > > Updated to current -HEAD, and now we crash the kernel if it's running. > > > > > > The backtrace points to the linuxulator. > > > > > r283544, but this is not final fix. > > > > chd > > Thanks! That fixes the crash -- I'll watch for follow-on commits. > this need more testing before land: diff --git a/sys/compat/linux/linux_emul.c b/sys/compat/linux/linux_emul.c index a28da8d..c2bf3ae 100644 --- a/sys/compat/linux/linux_emul.c +++ b/sys/compat/linux/linux_emul.c @@ -219,6 +219,18 @@ void linux_proc_exec(void *arg __unused, struct proc *p, struct image_params *imgp) { struct thread *td = curthread; + struct thread *othertd; + + /* + * In a case of execing from linux binary properly detach + * other threads from the user space. + */ + if (__predict_false(SV_PROC_ABI(p) == SV_ABI_LINUX)) { + FOREACH_THREAD_IN_PROC(p, othertd) { + if (td != othertd) + (p->p_sysent->sv_thread_detach)(othertd); + } + } /* * In a case of execing to linux binary we create linux -- Have fun! chd