Hi Yorick, On Fri, Nov 27, 2020 at 06:29:07PM +0200, Yorick Hardy wrote: > > I think that uvm_mremap did not keep pace with changes in uvm. > This patch seems to fix it for me, although I have only tested > for two days so far (I am usually able to trigger the panic by > now ... but lets see).
Your patch looks good, please go ahead and commit it. -Chuck > Leonardo, would you be willing to try the patch? > > -- > Kind regards, > > Yorick Hardy > > Index: sys/uvm/uvm_mremap.c > =================================================================== > RCS file: /cvsroot/src/sys/uvm/uvm_mremap.c,v > retrieving revision 1.20 > diff -u -r1.20 uvm_mremap.c > --- sys/uvm/uvm_mremap.c 23 Feb 2020 15:46:43 -0000 1.20 > +++ sys/uvm/uvm_mremap.c 26 Nov 2020 19:14:06 -0000 > @@ -80,10 +80,8 @@ > error = E2BIG; /* XXX */ > goto done; > } > - rw_enter(uobj->vmobjlock, RW_WRITER); > - KASSERT(uobj->uo_refs > 0); > - atomic_inc_uint(&uobj->uo_refs); > - rw_exit(uobj->vmobjlock); > + if (uobj->pgops->pgo_reference) > + uobj->pgops->pgo_reference(uobj); > reserved_entry->object.uvm_obj = uobj; > reserved_entry->offset = newoffset; > }