From nobody Mon Mar 3 00:06:34 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5fHb2nLPz59TYH; Mon, 03 Mar 2025 00:06:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5fHb1Jkcz3wJK; Mon, 03 Mar 2025 00:06:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740960395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4LuLoKM1MpZ2lb7fORLBjqSGiw07okgScjfOQe8ZZ18=; b=Ol6x1V0WvImbADlkhpYOlhwZ7maPQ2PuuWicj2Y4c3sZ18pUX0pISSJ7QiTjYzdpHwpvP7 qz5zfKXQdAVst/DPcgtB1Y4GShpOH+Y2bkhVQHF6Q6jsu6E/sDqfjZINFMRpGDy7trupUo FiyBpSWyfuKg4jePJP5f9LAi7aC6M0OXArRPX+WR9wKUAZzIUOH/x2NgcbAIjiF1q4Hre8 GxiuRV8vUMjhEoCbreLKs1kRubPDRobcKM29UOoGnWAy5PUflIYpsdUhy892BvPa+CSlfK VPmqDpLR4G7I7lLLR4jZRmDJkYSjXqcPLzr78/A1ab6wS7BPb6KoYSsg+z0Oyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740960395; a=rsa-sha256; cv=none; b=YvzURsemVPM7WytH++dVoVSON/IihhTyGX0nKBDviPo1seTskU/34U2IhP2jo7XHp2rZ+B Ay6mAJAYuwh2rpftpaAGfDPg+3W5f13cK3GLr9i3gPr08ivqC0w/FvBLOnYfedqHCP/rZR YlbiWtnk6wSyNYuuKZRk3snNQJFMww2C8OI1Y4cCUf2xEjvfFnEH34FXbUdFMqtnbqPR3g LvIesU443JpwyA+Tn05bgB2R4aFF7yMyiUoMum/nBgCUjzdJYQbuYlo+q9gScbp4qQ/kRc G59Oc+Txm6Ot9eKD7ktUuZV1Xqp8kLZserA9ncLEyv5bzS98k9C1IspEadaRIg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740960395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4LuLoKM1MpZ2lb7fORLBjqSGiw07okgScjfOQe8ZZ18=; b=EOAUKjhfI4g4+VXHoBTd02qq0+tXnJEpz+2toPZa/5lLbp0m68aEtXrYBVqk3G4vOipvM7 STpSHbI4TB1qQrwUX3AMapsKMFK8upSaH0dEoTZyoBgjKWPIS6rj9r/speEu6LYY+sttuP T/a8MH8ESSfNvflklxxOnNlLjsZ3Da1beVB6So34Zh+16t/2ab50KQVBNVzk2od0RIGO7f MiAKvinRm7AWIlQx8T8t38QXvj8+WSraFS3qyitYbO8M+3fdU3LdYFApZuNxlMPyw1eczG nbQZVIK/3UiHCNMf0Cnl51R2gjLnDyUfexScLl+2bJ2nJ+Fp6mh+8smj4jRkhw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5fHb0rRYz7ss; Mon, 03 Mar 2025 00:06:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52306Zu3098891; Mon, 3 Mar 2025 00:06:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52306YTj098888; Mon, 3 Mar 2025 00:06:34 GMT (envelope-from git) Date: Mon, 3 Mar 2025 00:06:34 GMT Message-Id: <202503030006.52306YTj098888@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore Subject: git: 991dbf9f4327 - main - vm_page: drop page_iter_lookup List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 991dbf9f4327bfff0098e472f9395d889c4a546c Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=991dbf9f4327bfff0098e472f9395d889c4a546c commit 991dbf9f4327bfff0098e472f9395d889c4a546c Author: Doug Moore AuthorDate: 2025-03-03 00:05:02 +0000 Commit: Doug Moore CommitDate: 2025-03-03 00:05:02 +0000 vm_page: drop page_iter_lookup The functions vm_page_iter_lookup and vm_page_iter_lookup_ge are just wrappers around vm_radix_iter_lookup and vm_radix_iter_lookup_ge, respectively. They server no real purpose, so drop them and use the vm_radix versions everywhere. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49203 --- sys/vm/device_pager.c | 5 +++-- sys/vm/swap_pager.c | 12 ++++++------ sys/vm/vm_kern.c | 4 ++-- sys/vm/vm_object.c | 8 ++++---- sys/vm/vm_page.c | 31 ------------------------------- sys/vm/vm_page.h | 2 -- 6 files changed, 15 insertions(+), 47 deletions(-) diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c index 24241d118c7a..0691d43a5946 100644 --- a/sys/vm/device_pager.c +++ b/sys/vm/device_pager.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -267,7 +268,7 @@ cdev_pager_free_page(vm_object_t object, vm_page_t m) struct pctrie_iter pages; vm_page_iter_init(&pages, object); - vm_page_iter_lookup(&pages, m->pindex); + vm_radix_iter_lookup(&pages, m->pindex); cdev_mgtdev_pager_free_page(&pages, m); } else if (object->type == OBJT_DEVICE) dev_pager_free_page(object, m); @@ -292,7 +293,7 @@ cdev_mgtdev_pager_free_pages(vm_object_t object) vm_page_iter_init(&pages, object); VM_OBJECT_WLOCK(object); retry: - for (m = vm_page_iter_lookup_ge(&pages, 0); m != NULL; + for (m = vm_radix_iter_lookup_ge(&pages, 0); m != NULL; m = vm_radix_iter_step(&pages)) { if (!vm_page_busy_acquire(m, VM_ALLOC_WAITFAIL)) { pctrie_iter_reset(&pages); diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index dbe0b6710367..0dee95fb2c5e 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1966,7 +1966,7 @@ swap_pager_swapoff_object(struct swdevt *sp, vm_object_t object) * found page has pending operations, sleep and restart * the scan. */ - m = vm_page_iter_lookup(&pages, blks.index + i); + m = vm_radix_iter_lookup(&pages, blks.index + i); if (m != NULL && (m->oflags & VPO_SWAPINPROG) != 0) { m->oflags |= VPO_SWAPSLEEP; VM_OBJECT_SLEEP(object, &object->handle, PSWP, @@ -2393,7 +2393,7 @@ swp_pager_meta_free(vm_object_t object, vm_pindex_t pindex, vm_pindex_t count, continue; swp_pager_update_freerange(&range, sb->d[i]); if (freed != NULL) { - m = vm_page_iter_lookup(&pages, blks.index + i); + m = vm_radix_iter_lookup(&pages, blks.index + i); if (m == NULL || vm_page_none_valid(m)) fc++; } @@ -2511,7 +2511,7 @@ swap_pager_seek_data(vm_object_t object, vm_pindex_t pindex) VM_OBJECT_ASSERT_RLOCKED(object); vm_page_iter_init(&pages, object); - m = vm_page_iter_lookup_ge(&pages, pindex); + m = vm_radix_iter_lookup_ge(&pages, pindex); if (m != NULL && pages.index == pindex && vm_page_any_valid(m)) return (pages.index); swblk_iter_init_only(&blks, object); @@ -2546,7 +2546,7 @@ swap_pager_seek_hole(vm_object_t object, vm_pindex_t pindex) VM_OBJECT_ASSERT_RLOCKED(object); vm_page_iter_init(&pages, object); swblk_iter_init_only(&blks, object); - while (((m = vm_page_iter_lookup(&pages, pindex)) != NULL && + while (((m = vm_radix_iter_lookup(&pages, pindex)) != NULL && vm_page_any_valid(m)) || ((sb = swblk_iter_lookup(&blks, pindex)) != NULL && sb->d[pindex % SWAP_META_PAGES] != SWAPBLK_NONE)) @@ -2591,7 +2591,7 @@ swap_pager_scan_all_shadowed(vm_object_t object) pv = ps = pi = backing_offset_index - 1; for (;;) { if (pi == pv) { - p = vm_page_iter_lookup_ge(&backing_pages, pv + 1); + p = vm_radix_iter_lookup_ge(&backing_pages, pv + 1); pv = p != NULL ? p->pindex : backing_object->size; } if (pi == ps) @@ -2633,7 +2633,7 @@ swap_pager_scan_all_shadowed(vm_object_t object) * object and we might as well give up now. */ new_pindex = pi - backing_offset_index; - pp = vm_page_iter_lookup(&pages, new_pindex); + pp = vm_radix_iter_lookup(&pages, new_pindex); /* * The valid check here is stable due to object lock being diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 2b85dbde1dd6..8945061aabdc 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -650,14 +650,14 @@ _kmem_unback(vm_object_t object, vm_offset_t addr, vm_size_t size) end = offset + size; VM_OBJECT_WLOCK(object); vm_page_iter_init(&pages, object); - m = vm_page_iter_lookup(&pages, atop(offset)); + m = vm_radix_iter_lookup(&pages, atop(offset)); domain = vm_page_domain(m); if (__predict_true((m->oflags & VPO_KMEM_EXEC) == 0)) arena = vm_dom[domain].vmd_kernel_arena; else arena = vm_dom[domain].vmd_kernel_rwx_arena; for (; offset < end; offset += PAGE_SIZE, - m = vm_page_iter_lookup(&pages, atop(offset))) { + m = vm_radix_iter_lookup(&pages, atop(offset))) { vm_page_xbusy_claim(m); vm_page_unwire_noq(m); vm_page_iter_free(&pages, m); diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 0f0f8cc6f5bf..9269103d8d91 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1577,7 +1577,7 @@ vm_object_split(vm_map_entry_t entry) vm_page_iter_limit_init(&pages, orig_object, offidxstart + size); retry: pctrie_iter_reset(&pages); - for (m = vm_page_iter_lookup_ge(&pages, offidxstart); m != NULL; + for (m = vm_radix_iter_lookup_ge(&pages, offidxstart); m != NULL; m = vm_radix_iter_step(&pages)) { /* * We must wait for pending I/O to complete before we can @@ -1681,7 +1681,7 @@ vm_object_collapse_scan_wait(struct pctrie_iter *pages, vm_object_t object, } VM_OBJECT_WLOCK(backing_object); vm_page_iter_init(pages, backing_object); - return (vm_page_iter_lookup_ge(pages, 0)); + return (vm_radix_iter_lookup_ge(pages, 0)); } static void @@ -1702,7 +1702,7 @@ vm_object_collapse_scan(vm_object_t object) * Our scan */ vm_page_iter_init(&pages, backing_object); - for (p = vm_page_iter_lookup_ge(&pages, 0); p != NULL; p = next) { + for (p = vm_radix_iter_lookup_ge(&pages, 0); p != NULL; p = next) { /* * Check for busy page */ @@ -1997,7 +1997,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end, vm_page_iter_limit_init(&pages, object, end); again: pctrie_iter_reset(&pages); - for (p = vm_page_iter_lookup_ge(&pages, start); p != NULL; + for (p = vm_radix_iter_lookup_ge(&pages, start); p != NULL; p = vm_radix_iter_step(&pages)) { /* * Skip invalid pages if asked to do so. Try to avoid acquiring diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index e9c371e62d70..4d9a57544487 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1836,21 +1836,6 @@ vm_page_iter_limit_init(struct pctrie_iter *pages, vm_object_t object, vm_radix_iter_limit_init(pages, &object->rtree, limit); } -/* - * vm_page_iter_lookup: - * - * Returns the page associated with the object/offset pair specified, and - * stores the path to its position; if none is found, NULL is returned. - * - * The iter pctrie must be locked. - */ -vm_page_t -vm_page_iter_lookup(struct pctrie_iter *pages, vm_pindex_t pindex) -{ - - return (vm_radix_iter_lookup(pages, pindex)); -} - /* * vm_page_lookup_unlocked: * @@ -1935,22 +1920,6 @@ vm_page_find_least(vm_object_t object, vm_pindex_t pindex) return (m); } -/* - * vm_page_iter_lookup_ge: - * - * Returns the page associated with the object with least pindex - * greater than or equal to the parameter pindex, or NULL. Initializes the - * iterator to point to that page. - * - * The iter pctrie must be locked. - */ -vm_page_t -vm_page_iter_lookup_ge(struct pctrie_iter *pages, vm_pindex_t pindex) -{ - - return (vm_radix_iter_lookup_ge(pages, pindex)); -} - /* * Returns the given page's successor (by pindex) within the object if it is * resident; if none is found, NULL is returned. diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h index 05c16212a995..1cac80c6a8ef 100644 --- a/sys/vm/vm_page.h +++ b/sys/vm/vm_page.h @@ -645,7 +645,6 @@ void vm_page_deactivate_noreuse(vm_page_t); void vm_page_dequeue(vm_page_t m); void vm_page_dequeue_deferred(vm_page_t m); vm_page_t vm_page_find_least(vm_object_t, vm_pindex_t); -vm_page_t vm_page_iter_lookup_ge(struct pctrie_iter *, vm_pindex_t); void vm_page_free_invalid(vm_page_t); vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr); void vm_page_initfake(vm_page_t m, vm_paddr_t paddr, vm_memattr_t memattr); @@ -656,7 +655,6 @@ void vm_page_invalid(vm_page_t m); void vm_page_iter_free(struct pctrie_iter *pages, vm_page_t m); void vm_page_iter_init(struct pctrie_iter *, vm_object_t); void vm_page_iter_limit_init(struct pctrie_iter *, vm_object_t, vm_pindex_t); -vm_page_t vm_page_iter_lookup(struct pctrie_iter *, vm_pindex_t); bool vm_page_iter_remove(struct pctrie_iter *pages, vm_page_t m); bool vm_page_iter_rename(struct pctrie_iter *old_pages, vm_page_t m, vm_object_t new_object, vm_pindex_t new_pindex);