From nobody Mon Jul 13 19:53:32 2026 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 4gzY5m3YYyz6ljSC for ; Mon, 13 Jul 2026 19:53:32 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gzY5m2sP8z3XT3 for ; Mon, 13 Jul 2026 19:53:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783972412; 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=qfM0bhE8XV633wMvnuYwFXaS16U3YIN0mxdB2CvS3oY=; b=nEMXbIHr67Y7aoKpTie6qbhkaDip/DmG5XhcKjmxXtCzMQWBRmsfmbgzql0A5fcRp86DEV 3ZJcTS1OmstKGWxX2eed3CaeDZAdxNTqnuiJhHVw48oQe3GYqy/0sKgVFJCdOG+6+Krjn8 abJnwh9z2yI8EzaOmR+348ahNVDS1Law0FzNNj+YEe8iaSvTHFMuToy4CnedHN1vecu4v3 aCLaQDymvgWgOuPEMLdOlPyLW9GZwjF9Ry/RFXGPJ9Ko1MBWtGs5FmTV8sriSf6zKFRGNK PzzWu0GDVpdzI6BHEbAL4ZPCHpgqksR+wUbYtgrRC8VmY2wZr/JC5Cnglw5wqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783972412; a=rsa-sha256; cv=none; b=SbsTPP72b9U59Eo1/zx11KB6IAC9dOx9lRfKa397kzoRCiUb3/dRpf4j0mV2wFHMT5Q3cg 9rh2tr0PPRnctHlvxlUe4JvQ42GdEWJ+//1VXfvVFdAL2qSXqOXrPNvNQsUmB8RmNrJOp0 3PkPAdn/ue0TGMM6ijLht/+HpzrBpO7rOgztUrXjaWrMybGMO+KSR0Rpnt7dYnPVNLcicv W+e96AYAu5BmXvS61/qcv+Dw+HczPasU2opEhXQ1JoM4zL7dfvZYycJh4YCQ1JZVhZp3dZ TAahJ5QEEKsmcS9172L421MqQU/XhszLyoOrh1nlS7NbsI3RWSzAEjEbeXhnlA== 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=1783972412; 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=qfM0bhE8XV633wMvnuYwFXaS16U3YIN0mxdB2CvS3oY=; b=mF4ixcqCqWu7D0e/tE9cKaLkq6nwTc8OEwMif1UUiMy+ZWKX0lUaW64lXgyuJ5Cd5lb9b5 LOWiGZA93Sr06ZnuMqTxWqB+uBmGfUoNjyccbq0hXEbAwDGkhOJR+0XWYzJRIo/y3NppRs sLMydSOLcuWnDj8aHEuXA/kpaU3gZydXAg4R/9D3zN8o/2pYfugglwWAUM4gfv+vc7Kjuf kz58O1vH0mgbXVVUl6dY+huZ8wSTjpeHydg/a8YfLOb2QZvyPn+455Mj8dKhSt3cqouo1u VolGAlAtW9xsFjgd2clXoo6q59+wU22v6H4KfqS02mc5jh0zziK+oF6WgbyVcA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gzY5m1kvGz1CCt for ; Mon, 13 Jul 2026 19:53:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 364c6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Jul 2026 19:53:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 1b5ec2e466ee - main - subr_physmem_test: add tests for two edge-cases 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1b5ec2e466ee100161017ae2618f91829310f1d6 Auto-Submitted: auto-generated Date: Mon, 13 Jul 2026 19:53:32 +0000 Message-Id: <6a55423c.364c6.54cb671f@gitrepo.freebsd.org> The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=1b5ec2e466ee100161017ae2618f91829310f1d6 commit 1b5ec2e466ee100161017ae2618f91829310f1d6 Author: Mitchell Horne AuthorDate: 2026-07-13 19:49:32 +0000 Commit: Mitchell Horne CommitDate: 2026-07-13 19:49:32 +0000 subr_physmem_test: add tests for two edge-cases Help validate my assertion that "physmem will never report empty ranges". Part of this is covered by the existing tests, which check the merging of adjacent/overlapping regions. The other part is to ensure that addition of zero-sized ranges is ignored. The physmem implementation also includes logic to ignore the first physical page of memory (physical addresses 0 to PAGE_SIZE-1). Add a second test case for this. Reviewed by: markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45914 --- tests/sys/kern/subr_physmem_test.c | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/sys/kern/subr_physmem_test.c b/tests/sys/kern/subr_physmem_test.c index 31bd30447e3b..96e608a36d72 100644 --- a/tests/sys/kern/subr_physmem_test.c +++ b/tests/sys/kern/subr_physmem_test.c @@ -160,11 +160,54 @@ ATF_TC_BODY(hwregion_unordered, tc) ATF_CHECK_EQ(avail[1], 3 * PAGE_SIZE); } +ATF_TC_WITHOUT_HEAD(hwregion_ignore_empty); +ATF_TC_BODY(hwregion_ignore_empty, tc) +{ + vm_paddr_t avail[4]; + size_t len; + + /* Add a region. */ + physmem_hardware_region(PAGE_SIZE, 2 * PAGE_SIZE); + + /* Add full zero range (ignored) */ + physmem_hardware_region(0, 0); + + /* Add a zero-sized range (ignored) */ + physmem_hardware_region(4 * PAGE_SIZE, 0); + + len = physmem_avail(avail, nitems(avail)); + ATF_CHECK_EQ(len, 2); + ATF_CHECK_EQ(avail[0], PAGE_SIZE); + ATF_CHECK_EQ(avail[1], 3 * PAGE_SIZE); +} + +ATF_TC_WITHOUT_HEAD(hwregion_ignore_page0); +ATF_TC_BODY(hwregion_ignore_page0, tc) +{ + vm_paddr_t avail[4]; + size_t len; + + /* + * Physical addresses [0, PAGE_SIZE) are unusable in the VM layer. + * + * physmem will truncate this from the beginning of an otherwise valid + * memory range; test that this is the case. + */ + physmem_hardware_region(0, 2 * PAGE_SIZE); + + len = physmem_avail(avail, 4); + ATF_CHECK_EQ(len, 2); + ATF_CHECK_EQ(avail[0], PAGE_SIZE); + ATF_CHECK_EQ(avail[1], 2 * PAGE_SIZE); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, hwregion); ATF_TP_ADD_TC(tp, hwregion_exclude); ATF_TP_ADD_TC(tp, hwregion_unordered); + ATF_TP_ADD_TC(tp, hwregion_ignore_empty); + ATF_TP_ADD_TC(tp, hwregion_ignore_page0); return (atf_no_error()); }