On 26/10/23(Thu) 07:06, Miod Vallat wrote:
> > I wonder if the diff below makes a difference.  It's hard to debug and it
> > might be worth adding a counter for bad swap slots.
> 
> It did not help (but your diff is probably correct).

In that case I'd like to put both diffs in, are you ok with that?

> > Index: uvm/uvm_anon.c
> > ===================================================================
> > RCS file: /cvs/src/sys/uvm/uvm_anon.c,v
> > retrieving revision 1.56
> > diff -u -p -r1.56 uvm_anon.c
> > --- uvm/uvm_anon.c  2 Sep 2023 08:24:40 -0000       1.56
> > +++ uvm/uvm_anon.c  22 Oct 2023 21:27:42 -0000
> > @@ -116,7 +116,7 @@ uvm_anfree_list(struct vm_anon *anon, st
> >                     uvm_unlock_pageq();     /* free the daemon */
> >             }
> >     } else {
> > -           if (anon->an_swslot != 0) {
> > +           if (anon->an_swslot != 0 && anon->an_swslot != SWSLOT_BAD) {
> >                     /* This page is no longer only in swap. */
> >                     KASSERT(uvmexp.swpgonly > 0);
> >                     atomic_dec_int(&uvmexp.swpgonly);

Reply via email to