From nobody Sun Apr 20 19:36:20 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 4Zgdz83cTFz5tXQ2; Sun, 20 Apr 2025 19:36:20 +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 4Zgdz82Jcbz3fL3; Sun, 20 Apr 2025 19:36:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745177780; 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=CVSZnjW0TUOycTujmEgXfP1qDR6LfOxdIkavRvBBmK4=; b=OGNmfzj1uQ2UdoE6eiMr3rNawCn2MX4rdFCJpsu9gjuQZZzLp86zz48zAau+1r8ceCI7w/ tsNBUlZ97/X1GYiTi9O/wzO7E3POrMdspFuh5Eb9sJyqRbiaN+/iMTSAipRAE4cAsyhdBq JFJMFpqOnRDAXRdxzXJQ4qZP4gfhHb53utM0yL46snNAzRzxGTsDO76zaxkgFRRVS63dt5 xOfEOYYg/gkA1lDi3lZGQRpZQSEderKqX4Eeh+7fWwB6XzFgHy3X3QFMiy7JKQca2Nm8j1 MXMN223XwCI/C4DdNT//QAGd6StsPSp9lpPypt8adgAT03eQMU1i4kijMHiy3A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745177780; a=rsa-sha256; cv=none; b=QXne2R5Ji/Z+dBNxn4wfJJxRsWzvgqgOsgh3heo4JCwlhsBJ6FxgEOT4h8RC86Bkvp6QQF WWbWcNKe0/K+72S1uQ1YuI6+M9tUk/QtX7XhE8VZtWeflu+YjXZuyMbPr6RWRZxvFCawXQ L6GcNGlXmZHLlF+izbpiCnczbQCVusFcwhcukJldKR7f8oWOd4nWZIPHaRFkqB/xQkAgCA sVFhE8ToUzAs7kdXWZ7EvY4pcJLjbZtJWquNJ56wnlS/VBjv8+IyLQZ8cmFvENcV6iHiqo qBqLla4TgVnXNArH8fcrENG1LTLyOBhArZU5fqsdnJYGUy/VmmAhK+5/xeAVyg== 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=1745177780; 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=CVSZnjW0TUOycTujmEgXfP1qDR6LfOxdIkavRvBBmK4=; b=TiMaHybre242Ao+y7eDwV7WhaLqJmt5j6VyuRSbm+t1BsLqKn4GQBwhkbyEBGNf2YV4ZB0 TixnCgdtjMfBoIvvfB5KardJOz0TS3T9rTaAVMJWFJEa2CLiLkWECjqrB6qEjWh3JXqGCy KbJ4BWz+BxtI4zV+IRjl9gmljzAjANZRG+pq8l1mA5alt0YKS12AieIyIqZ7iHco7uG2r3 Gu3OukRaRIRz9Qs584TcuoVuqSz/InUjeYidDjMDBoABP46jVTUPU1GNy26KmvvQnASsM/ TzmPtrO0JQbvYZfY8qJiAsQDmJNjQXNBJVWJPbSPIarIg5RkFQUCJCK+8cubeA== 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 4Zgdz81vrwz2qs; Sun, 20 Apr 2025 19:36:20 +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 53KJaKVU042786; Sun, 20 Apr 2025 19:36:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53KJaKUc042783; Sun, 20 Apr 2025 19:36:20 GMT (envelope-from git) Date: Sun, 20 Apr 2025 19:36:20 GMT Message-Id: <202504201936.53KJaKUc042783@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: 0b694568b0b5 - main - vm_object: use iterators in madvise() 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: 0b694568b0b5d3cf76f56b119b3a378a47b44a1f Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=0b694568b0b5d3cf76f56b119b3a378a47b44a1f commit 0b694568b0b5d3cf76f56b119b3a378a47b44a1f Author: Doug Moore AuthorDate: 2025-04-20 19:35:12 +0000 Commit: Doug Moore CommitDate: 2025-04-20 19:35:12 +0000 vm_object: use iterators in madvise() Change vm_object_madvise() to use iterators rather than tailq pointers. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49932 --- sys/vm/vm_object.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index a1cd01d9fec6..2f2f77ff075c 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1332,6 +1332,7 @@ void vm_object_madvise(vm_object_t object, vm_pindex_t pindex, vm_pindex_t end, int advice) { + struct pctrie_iter pages; vm_pindex_t tpindex; vm_object_t backing_object, tobject; vm_page_t m, tm; @@ -1339,13 +1340,15 @@ vm_object_madvise(vm_object_t object, vm_pindex_t pindex, vm_pindex_t end, if (object == NULL) return; + vm_page_iter_init(&pages, object); relookup: VM_OBJECT_WLOCK(object); if (!vm_object_advice_applies(object, advice)) { VM_OBJECT_WUNLOCK(object); return; } - for (m = vm_page_find_least(object, pindex); pindex < end; pindex++) { + for (m = vm_radix_iter_lookup_ge(&pages, pindex); pindex < end; + pindex++) { tobject = object; /* @@ -1394,7 +1397,7 @@ relookup: } else { next_page: tm = m; - m = TAILQ_NEXT(m, listq); + m = vm_radix_iter_step(&pages); } /* @@ -1420,6 +1423,7 @@ next_page: } if (!vm_page_busy_sleep(tm, "madvpo", 0)) VM_OBJECT_WUNLOCK(tobject); + pctrie_iter_reset(&pages); goto relookup; } vm_page_advise(tm, advice);