Download raw body.
uvm_fault: loaned pages leftovers
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) {
>
>
uvm_fault: loaned pages leftovers