From nobody Fri Jun 23 23:50:11 2023 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 4Qnv9v6yT2z4gfFk; Fri, 23 Jun 2023 23:50:11 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qnv9v6VXsz3tYG; Fri, 23 Jun 2023 23:50:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687564211; 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=0mmMTXpprts4lFKWUg8Woss2kUWoxaoTUrUUIvXl/DE=; b=u2rsiDRvc6vcMsJVJMP8DPWKSl8MAWYmtJTA60xnxmn63wE2iOpHHWlNY/lseJ5a9vGR2U 98IOM8Dkah/tuoQByUYmrgLMd8D/k+CJEypJC3wDb1CPAH3hyn1JjmXj03hT7Vi3YzwrMi zkuHUng8lz1Nf8Zl18y8B3+y3PwC9Z8LS0RWOEqTxJO+hmyNXqnkkgoAzWkq1vZC39jIed UvoFpkOVqwRZXSW4TmZRZmWKlGsYY2DAZON8dtypgYJCIH86ASz3azkojWkovaskLQ95T/ nMUkGIRZVlHTqHYseLvPP42WsdFtQwzODP0zlmMfqayqIVcc5agiMTXGum2zqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687564211; 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=0mmMTXpprts4lFKWUg8Woss2kUWoxaoTUrUUIvXl/DE=; b=pNraUJthxQw4hdFmPf1fP8B7TfqQ0D8xuAivRQjFrB2tfjoHq3ClSVqfwCrgN/ZGAgASR6 zRn1gEfsXB/4AcCWzVfHLg8mdw6IMQFuK+eA1B6wbZORzBmTu7dZdnmEjbnPFDwrYdW8xL ZJOrRc4Q5RRmjEFev+megEHd69BkZUiieV3wMvYMDzlJ7rSW8yAoF/Y6ZmnAvt70S7nUVJ tdnoKsNzPzL9+gss16ex7eehqGWugeZMsx4M3Lt7QLJozE8S+ETQomoTckZgu7kqixU5nr sga4q+8s5xpB7c3Rp/b/2NmKzQA+2N4IOnLh5bcVJ7teleqP1Zph4fKlle+blg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1687564211; a=rsa-sha256; cv=none; b=tP1tIS/pA67MENxbrZzMt0oo2Iqwi9y1AFGsfC8uAhsAa0YhEUhdSNfLBQoNRY0DCPjTHn C0QxYvDcePSkpGDaUPwwzTyTxvdsGmXu14I1s1ssDxkWUjJGklecd8S0q+gZ+Vr0csnNZW AnS7VGPZusq7GtaNfch5hGJZKZaWniN5LnYpBkZvs606sQ5eIYt+itpfdkX8xU5yBrHki3 3moY1Yd986Q6ssvt+j6K5uOfbZXGJCtS/c/OZ/8OaVM0p6XaLPw1r69MevZKOKBxCfq3hp mURkmzFxmXppiTyHCvAUKlXtuz7mWHftvNBMitBc5qteoZs8rBUWWJ7RpWV5PA== 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 4Qnv9v5bS9zPbF; Fri, 23 Jun 2023 23:50:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35NNoBd0098697; Fri, 23 Jun 2023 23:50:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35NNoBgZ098690; Fri, 23 Jun 2023 23:50:11 GMT (envelope-from git) Date: Fri, 23 Jun 2023 23:50:11 GMT Message-Id: <202306232350.35NNoBgZ098690@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: e8efee297c6d - main - radix_trie: avoid reloading radix node 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: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: 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: e8efee297c6db8b1adfa7e5a10cd5a340564cb7b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=e8efee297c6db8b1adfa7e5a10cd5a340564cb7b commit e8efee297c6db8b1adfa7e5a10cd5a340564cb7b Author: Doug Moore AuthorDate: 2023-06-23 23:47:23 +0000 Commit: Doug Moore CommitDate: 2023-06-23 23:47:23 +0000 radix_trie: avoid reloading radix node In the vm_radix:remove loop that searches for the last child, load that child once, without loading it again after the search is over. Change KASSERTS from index check to NULL node check. Reviewed by: alc Differential Revision: https://reviews.freebsd.org/D40721 --- sys/kern/subr_pctrie.c | 2 +- sys/vm/vm_radix.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c index d4262e32be51..043c31ad9501 100644 --- a/sys/kern/subr_pctrie.c +++ b/sys/kern/subr_pctrie.c @@ -749,7 +749,7 @@ pctrie_remove(struct pctrie *ptree, uint64_t index, pctrie_free_t freefn) if (tmp != NULL) break; } - KASSERT(i != PCTRIE_COUNT, + KASSERT(tmp != NULL, ("%s: invalid node configuration", __func__)); if (parent == NULL) pctrie_root_store(ptree, tmp, PCTRIE_LOCKED); diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index 6848f0b2c30e..cc932a6cc80d 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -773,13 +773,14 @@ vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) rnode->rn_count--; if (rnode->rn_count > 1) return (m); - for (i = 0; i < VM_RADIX_COUNT; i++) - if (vm_radix_node_load(&rnode->rn_child[i], - LOCKED) != NULL) + for (i = 0; i < VM_RADIX_COUNT; i++) { + tmp = vm_radix_node_load(&rnode->rn_child[i], + LOCKED); + if (tmp != NULL) break; - KASSERT(i != VM_RADIX_COUNT, + } + KASSERT(tmp != NULL, ("%s: invalid node configuration", __func__)); - tmp = vm_radix_node_load(&rnode->rn_child[i], LOCKED); if (parent == NULL) vm_radix_root_store(rtree, tmp, LOCKED); else {