From: Martin Pieuchot Subject: Re: uvm_fault: loaned pages leftovers To: tech@openbsd.org Date: Mon, 20 Jan 2025 10:09:24 +0100 On 03/01/25(Fri) 16:39, Martin Pieuchot wrote: > OpenBSD's UVM doesn't have support for loaned pages. Diff below removes > dead code related to such pages. > > I've been hitting this hard on my 24 CPUs amd64. ok? Anyone? > Index: uvm/uvm_fault.c > =================================================================== > RCS file: /cvs/src/sys/uvm/uvm_fault.c,v > diff -u -p -r1.158 uvm_fault.c > --- uvm/uvm_fault.c 27 Dec 2024 12:04:40 -0000 1.158 > +++ uvm/uvm_fault.c 1 Jan 2025 15:31:38 -0000 > @@ -321,16 +321,9 @@ uvmfault_anonget(struct uvm_faultinfo *u > * The last unlock must be an atomic unlock and wait > * on the owner of page. > */ > - if (pg->uobject) { > - /* Owner of page is UVM object. */ > - uvmfault_unlockall(ufi, amap, NULL); > - uvm_pagewait(pg, pg->uobject->vmobjlock, > - "anonget1"); > - } else { > - /* Owner of page is anon. */ > - uvmfault_unlockall(ufi, NULL, NULL); > - uvm_pagewait(pg, anon->an_lock, "anonget2"); > - } > + KASSERT(pg->uobject == NULL); > + uvmfault_unlockall(ufi, NULL, NULL); > + uvm_pagewait(pg, anon->an_lock, "anonget"); > } else { > /* > * No page, therefore allocate one. > @@ -998,8 +997,6 @@ uvm_fault_upper(struct uvm_faultinfo *uf > * if it fails (!OK) it will unlock everything for us. > * if it succeeds, locks are still valid and locked. > * also, if it is OK, then the anon's page is on the queues. > - * if the page is on loan from a uvm_object, then anonget will > - * lock that object for us if it does not fail. > */ > error = uvmfault_anonget(ufi, amap, anon); > switch (error) { > >