Download raw body.
Use uao_dropswap()
> Date: Sat, 6 Apr 2024 13:24:06 +0200
> From: Martin Pieuchot <mpi@openbsd.org>
>
> Call uao_dropswap() instead of rerolling it. ok?
ok kettenis@
> Index: uvm/uvm_aobj.c
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_aobj.c,v
> diff -u -p -r1.108 uvm_aobj.c
> --- uvm/uvm_aobj.c 13 May 2023 09:24:59 -0000 1.108
> +++ uvm/uvm_aobj.c 6 Apr 2024 11:21:15 -0000
> @@ -1398,7 +1398,7 @@ uao_pagein_page(struct uvm_aobj *aobj, i
> {
> struct uvm_object *uobj = &aobj->u_obj;
> struct vm_page *pg;
> - int rv, slot, npages;
> + int rv, npages;
>
> pg = NULL;
> npages = 1;
> @@ -1429,8 +1429,7 @@ uao_pagein_page(struct uvm_aobj *aobj, i
> * ok, we've got the page now.
> * mark it as dirty, clear its swslot and un-busy it.
> */
> - slot = uao_set_swslot(&aobj->u_obj, pageidx, 0);
> - uvm_swap_free(slot, 1);
> + uao_dropswap(&aobj->u_obj, pageidx);
> atomic_clearbits_int(&pg->pg_flags, PG_BUSY|PG_CLEAN|PG_FAKE);
> UVM_PAGE_OWN(pg, NULL);
>
>
>
Use uao_dropswap()