From nobody Thu Apr 24 19:17:59 2025 X-Original-To: dev-commits-src-main@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 4Zk5N74bp0z5tgr5; Thu, 24 Apr 2025 19:17:59 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zk5N72v8Yz45yp; Thu, 24 Apr 2025 19:17:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745522279; 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=tXHTAmApfvVFd6hpCx/P/qfoJyxZefrwKjgsUCtpa+Q=; b=LbEGpMWjxYinBiK5/iQ/uAS9LBE3W1xlPg3P8oKkPlBCTqMUMnM8J+0gh9K4k4ciNF6J96 3yY9T1Ftaz8pzJT44/qt3zLHw5kzi6/nSoZQznJsl6H4z+eX2KoU5sCe4NGk0WXBcfJ4JR 1VCoXJ5LxbEOOqirBIhj5UnXHRi6iaIMgTT7zhJqZd79ox5qOi+d8hAvmei+dsZpG/+Gz1 RVRkczdP2g84tmFExOBbeIq0++eQrDdvM8ZDGb07hGunOowGKpjuK6+z4OzpazYh3IwY6y G90z2R04+4BVgQsmNrzsdCX42yTQ3PkIDQABpDLJ+8IoUGazjzRx5zIhwINquA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745522279; a=rsa-sha256; cv=none; b=qV7wDHQ+B8qKmKX/9A72iAfjI0VCLgIaadhgKjxRKMNy+w78ttrOpqGicuh1fi0h4gzFmw kvt5AJTcOk//quyzOinq28FbTj6QJzhIHBUvRtS2MUUUaXgtaFXJdLXG3r+9df2Pb1OZMo LVHaoVkGFWbjPhXE2lJDZL1BSCglNoiy6YNcvP0Tbpp1YoloG54ei9LJq5nJkWaYhByAQv BJ3U+DuG02Zcwcv3qok670ayWWyel1TDrjWfVkxbrZqUpj7A1yjtol7lbpPeJYZ/DesIrU 2hAqXfuMMfeQ60ANmDa9lv9zyV7nkiZS9Gp6CkcuR4+gMEG++0p2RYGvtBGZeA== 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=1745522279; 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=tXHTAmApfvVFd6hpCx/P/qfoJyxZefrwKjgsUCtpa+Q=; b=sB0hGF6Q05zjG8PDpDRFydtxTbCUjhgVcfJlEf5WhIi+yJXnzCDymsOcoXgfKvymp1rK/U mpYav2+wzncNoB2vEJk7s7HgJQmifkkrvKv7+6e4QmRIhOA/j0YAooKK6jVSImg2FX7Zhc IkLoP8nGOPQRtCfywbdBLOztXyGIwLpVvvDdPDfnN1iq3XMhcGVUlHgOzqnKqxFxNICtZd eLESdGhQXD3KXfNzQVpTDpu3keu3/1udCoyNUXsWCx6sJMqLwo/b61Ew9d1k6ek8msCLIb JRO9mWOxfiL3/8USBzTJIRQfiRjxinl4yBwpisrUC8W8A+IyLBFze50xmBQUmw== 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 4Zk5N729Htz11gr; Thu, 24 Apr 2025 19:17:59 +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 53OJHxcv001378; Thu, 24 Apr 2025 19:17:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53OJHx2V001375; Thu, 24 Apr 2025 19:17:59 GMT (envelope-from git) Date: Thu, 24 Apr 2025 19:17:59 GMT Message-Id: <202504241917.53OJHx2V001375@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: 98a01518bb5e - main - vm_object: use iterators in DB_SHOW*() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 98a01518bb5e0493b314b122e3d3eb4979a8d001 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=98a01518bb5e0493b314b122e3d3eb4979a8d001 commit 98a01518bb5e0493b314b122e3d3eb4979a8d001 Author: Doug Moore AuthorDate: 2025-04-24 19:16:50 +0000 Commit: Doug Moore CommitDate: 2025-04-24 19:16:50 +0000 vm_object: use iterators in DB_SHOW*() Replace tailq pointers with iterators in the DB_SHOW* functions. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49947 --- sys/vm/vm_object.c | 53 ++++++++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 147221c1e7e3..6a13cc1fd2b5 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -2758,6 +2758,7 @@ DB_SHOW_COMMAND_FLAGS(vmochk, vm_object_check, DB_CMD_MEMSAFE) */ DB_SHOW_COMMAND(object, vm_object_print_static) { + struct pctrie_iter pages; /* XXX convert args. */ vm_object_t object = (vm_object_t)addr; boolean_t full = have_addr; @@ -2788,7 +2789,8 @@ DB_SHOW_COMMAND(object, vm_object_print_static) db_indent += 2; count = 0; - TAILQ_FOREACH(p, &object->memq, listq) { + vm_page_iter_init(&pages, object); + VM_RADIX_FOREACH(p, &pages) { if (count == 0) db_iprintf("memory:="); else if (count == 6) { @@ -2826,49 +2828,38 @@ vm_object_print( DB_SHOW_COMMAND_FLAGS(vmopag, vm_object_print_pages, DB_CMD_MEMSAFE) { + struct pctrie_iter pages; vm_object_t object; - vm_pindex_t fidx; - vm_paddr_t pa; - vm_page_t m, prev_m; + vm_page_t m, start_m; int rcount; TAILQ_FOREACH(object, &vm_object_list, object_list) { db_printf("new object: %p\n", (void *)object); if (db_pager_quit) return; - - rcount = 0; - fidx = 0; - pa = -1; - TAILQ_FOREACH(m, &object->memq, listq) { - if ((prev_m = TAILQ_PREV(m, pglist, listq)) != NULL && - prev_m->pindex + 1 != m->pindex) { - if (rcount) { - db_printf(" index(%ld)run(%d)pa(0x%lx)\n", - (long)fidx, rcount, (long)pa); - if (db_pager_quit) - return; - rcount = 0; - } - } - if (rcount && - (VM_PAGE_TO_PHYS(m) == pa + rcount * PAGE_SIZE)) { - ++rcount; - continue; - } - if (rcount) { + start_m = NULL; + vm_page_iter_init(&pages, object); + VM_RADIX_FOREACH(m, &pages) { + if (start_m == NULL) { + start_m = m; + rcount = 0; + } else if (start_m->pindex + rcount != m->pindex || + VM_PAGE_TO_PHYS(start_m) + ptoa(rcount) != + VM_PAGE_TO_PHYS(m)) { db_printf(" index(%ld)run(%d)pa(0x%lx)\n", - (long)fidx, rcount, (long)pa); + (long)start_m->pindex, rcount, + (long)VM_PAGE_TO_PHYS(start_m)); if (db_pager_quit) return; + start_m = m; + rcount = 0; } - fidx = m->pindex; - pa = VM_PAGE_TO_PHYS(m); - rcount = 1; + rcount++; } - if (rcount) { + if (start_m != NULL) { db_printf(" index(%ld)run(%d)pa(0x%lx)\n", - (long)fidx, rcount, (long)pa); + (long)start_m->pindex, rcount, + (long)VM_PAGE_TO_PHYS(start_m)); if (db_pager_quit) return; }