From nobody Mon Feb 23 13:33:48 2026 X-Original-To: dev-commits-src-branches@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 4fKMJF1WZCz6TNyb for ; Mon, 23 Feb 2026 13:33:49 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJD63tHz3Kxq for ; Mon, 23 Feb 2026 13:33:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853628; 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=O90xFaBMiYNji0OoNExQnRb1t16b3MtvD4e3IkLFkBE=; b=LQ9nScVveswBYaA0r9e7Fm3KPkBQm7TL48dth3tIII+G5xvsXXh/Z9zCUh6VUQBfWn/iTR ceCXmUMmEwvKLvnUrSKObjGw3l7gHtKa5WAA01FsNUVxsRVgHm73+G9zWnUV4TWBO4MuuP 848wXs4QBwSFepxRMDH9B1M4xIA4Dwx5GnS+YLnzBfInDS92slFVAgy27eskXLyk90DIYm LVm7g81lBAik2DakBu8FrkkCym1vCM1mEihznBw3Y9kplTxdo0gOsaYCfSmzjdQM0Tgy5G UyUwlxvZD2qg4JhfbctJFmucsXbpnf+1C5HT2rBbSgtnatznvo2FjE0yg80LYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853628; a=rsa-sha256; cv=none; b=DeI1XCBuT5zqFPAmC1XvdABrhduYoP9k/UAaH8ttr1xZAAjq8wV0kZUE8c8ywq7CcqqGr2 H14jnA1fWC1yQoqHNdSo9vF5ti0URB2r+eHOP60sRIswQi19bxjt7B4biUcO9DFL11Z8k9 FxWIYZmYTKReUvMAsIBPSjMveHzHXwCMNHRrIGJdUN/4wH0js5VpNIJCkUz5Tuwf3YJCDU 6Oe3wfudQa9XEheuSbV2GSOnDntHLgTiRwAis5wljR0b3Glnmqjv3SkZEwO6ZDBhfWRk29 Gnw3gdTTY+jF+/G7DKaffjc8/YIiU5ugD+acbHUZH6BMq27Wxht/6SrRB37Kyw== 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=1771853628; 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=O90xFaBMiYNji0OoNExQnRb1t16b3MtvD4e3IkLFkBE=; b=a+RjJaoWhVDQJ7KjyGc5gbpPnCrCLmwtIwFfKEf6d0QFskjEAJj83sbA4rzqZ3IJEaFNFv gwiqRObx82xlv1XxBtdG5E0TPiCjcufNSw0r12F15Y14aAHdcUpRtqfa/PsX7/Ih6ZsVCT hvne4RMQRbl38F4UXzKo0wnJXdJ9DzT+u+fxVCv828nmKt6U/66Qu3pDbyj53DIyTv0DDU uP5OACCixGBQr/XADRuq5/y7klXC/ZEgwu2e/M7+VDA4MDqpgSx6Rkom7OWFKkOgHfCWui DGZNdQng4a6Khr5obyHBDYegmjBMrcfPcR5l1KOKiHA6RFbQad37E7lXOtM2OA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJD5bTqzXPk for ; Mon, 23 Feb 2026 13:33:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 473cd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 259506ff3886 - stable/14 - Extend the script to collect gprof data List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 259506ff38863e084398766af198c5de813f9ce7 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:48 +0000 Message-Id: <699c573c.473cd.46a2c91f@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=259506ff38863e084398766af198c5de813f9ce7 commit 259506ff38863e084398766af198c5de813f9ce7 Author: George V. Neville-Neil AuthorDate: 2026-01-08 04:13:04 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:31 +0000 Extend the script to collect gprof data While we're at it, switch to simple waiting from communicate() calls. (cherry picked from commit e2bedc7d69926426a710d035df51e0a0812d38b1) --- tools/test/hwpmc/pmctest.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 588fe6d79e83..ba20306f1d68 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -26,6 +26,7 @@ from subprocess import PIPE import argparse import tempfile from pathlib import Path +import os def gather_counters(): """Run program and return output as array of lines.""" @@ -75,20 +76,42 @@ def main(): p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=file, stdout=file) - result = p.communicate()[1] + result = p.wait() print(result) elif args.sample == True: + pmcout = tmpdir + "/" + program + "-" + counter + ".pmc" p = subprocess.Popen(["pmcstat", - "-O", tmpdir + "/" + program + "-" + counter + ".pmc", + "-O", pmcout, "-P", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() + resdir = tmpdir + "/" + program + "-" + counter + ".results" + os.makedirs(resdir) + p = subprocess.Popen(["pmcstat", + "-R", pmcout, + "-g"], + cwd=resdir, + text=True, stderr=PIPE) + result = p.wait() + gmondir = resdir + "/" + counter + if Path(gmondir).is_dir(): + with open(gmondir + "/" + "gprof.out", "w") as file: + p = subprocess.Popen(["gprof", + args.program, + program + ".gmon"], + cwd=gmondir, + text=True, + stdout=file, + stderr=subprocess.STDOUT) + result = p.wait() + else: + print ("Failed to get gmon data for ", counter) print(result) else: p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() print(result) if (args.wait == True): try: