Linuxulator: CRASH
Larry Rosenman
ler at lerctr.org
Mon May 25 22:22:29 UTC 2015
On Tue, May 26, 2015 at 12:31:03AM +0300, Chagin Dmitry wrote:
> 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
Applied, and running -- will let you know if it crashes or mis-behaves.
--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: ler at lerctr.org
US Mail: 108 Turvey Cove, Hutto, TX 78634-5688
More information about the freebsd-current
mailing list