> Date: Sun, 13 Sep 2020 16:49:48 +0200 > From: Sebastien Marie <sema...@online.fr> > > On Sun, Sep 13, 2020 at 03:29:57PM +0200, Martin Pieuchot wrote: > > I'm no longer able to reproduce the corruption while building lang/go > > with the diff below. Something relevant to threading change in go since > > march? > > > > Can someone try this diff and tell me if go and/or rust still fail? > > quickly tested with rustc build (nightly here), and it is failing at > random places (not always at the same) with memory errors (signal > 11, compiler ICE signal 6...)
Is it failing when you don't have tracing enabled and not failing when the tracing is disabled perhaps? > > Index: uvm/uvm_map.c > > =================================================================== > > RCS file: /cvs/src/sys/uvm/uvm_map.c,v > > retrieving revision 1.266 > > diff -u -p -r1.266 uvm_map.c > > --- uvm/uvm_map.c 12 Sep 2020 17:08:50 -0000 1.266 > > +++ uvm/uvm_map.c 13 Sep 2020 10:12:25 -0000 > > @@ -1893,16 +1893,16 @@ uvm_map_inentry(struct proc *p, struct p > > boolean_t ok = TRUE; > > > > if (uvm_map_inentry_recheck(serial, addr, ie)) { > > - KERNEL_LOCK(); > > ok = uvm_map_inentry_fix(p, ie, addr, fn, serial); > > if (!ok) { > > + KERNEL_LOCK(); > > printf(fmt, p->p_p->ps_comm, p->p_p->ps_pid, p->p_tid, > > addr, ie->ie_start, ie->ie_end); > > p->p_p->ps_acflag |= AMAP; > > sv.sival_ptr = (void *)PROC_PC(p); > > trapsignal(p, SIGSEGV, 0, SEGV_ACCERR, sv); > > + KERNEL_UNLOCK(); > > } > > - KERNEL_UNLOCK(); > > } > > return (ok); > > } > > > > -- > Sebastien Marie > >