> Date: Wed, 8 Jul 2015 16:35:09 +0200 (CEST)
> From: Mark Kettenis <mark.kette...@xs4all.nl>
> 
> > Date: Wed, 8 Jul 2015 15:17:46 +0100
> > From: Stuart Henderson <st...@openbsd.org>
> > 
> > On 2015/07/08 15:53, Mark Kettenis wrote:
> > > Index: uvm_map.c
> > ..
> > > @@ -2466,8 +2470,7 @@ uvm_map_teardown(struct vm_map *map)
> > >   if ((entry = RB_ROOT(&map->addr)) != NULL)
> > >           DEAD_ENTRY_PUSH(&dead_entries, entry);
> > >   while (entry != NULL) {
> > > -         if (waitok)
> > > -                 uvm_pause();
> > > +         sched_pause();
> > 
> > ah, slightly different than the one I've tried before which
> > had uvm_pause instead of sched_pause here plus an extra change
> > in uvm_glue.c.
> 
> Just a bit of a cleanup though.  Not going to make a difference.
> 
> > I'll give this a spin on i386 after my current build finishes.
> > FWIW I've been running the previous version on amd64 for ages with
> > very positive results.
> 
> I won't stop you ;).  But my goal was to trick others into testing
> this diff such that this doesn't hamper the i386 ports builds.

And thanks to Stuart, we have found a (fairly straightforward) lock
order reversal.  I'm working on a fix.

Thanks for everybody who tested so far.  Feel free to continue
testing, although you might want to be a bit careful on i386 systems
as they are somewhat likely to lock up with this diff.

Reply via email to