The branch main has been updated by gnn:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=77153a491e3b31475f5faddb21271a0a8e0d4a9b

commit 77153a491e3b31475f5faddb21271a0a8e0d4a9b
Author:     George V. Neville-Neil <[email protected]>
AuthorDate: 2026-01-06 08:55:14 +0000
Commit:     George V. Neville-Neil <[email protected]>
CommitDate: 2026-01-06 08:55:42 +0000

    Split counting from sampling.
---
 tools/test/hwpmc/pmctest.py | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py
index 8accdf09e69a..588fe6d79e83 100755
--- a/tools/test/hwpmc/pmctest.py
+++ b/tools/test/hwpmc/pmctest.py
@@ -42,7 +42,8 @@ def main():
     parser = argparse.ArgumentParser(description='Exercise a program under 
hwpmc')
     parser.add_argument('--program', type=str, required=True, help='target 
program')
     parser.add_argument('--wait', action='store_true', help='Wait after each 
counter.')
-    parser.add_argument('--exercise', action='store_true', help='Exercise the 
program being studied using sampling counters.')
+    parser.add_argument('--count', action='store_true', help='Exercise the 
program being studied using counting mode pmcs.')
+    parser.add_argument('--sample', action='store_true', help='Exercise the 
program being studied using sampling mode pmcs.')
 
     args = parser.parse_args()
 
@@ -52,22 +53,38 @@ def main():
         print("no counters found")
         sys.exit()
 
+    if args.count == True and args.sample == True:
+        print("Choose one of --count OR --sample.")
+        sys.exit()
+
     program = Path(args.program).name
 
-    if args.exercise == True:
-        tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-pmc")
+    if args.count == True:
+        tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-counting-pmc")
+        print("Exercising program ", args.program, " storing results data in 
", tmpdir)
+
+    if args.sample == True:
+        tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-sampling-pmc")
         print("Exercising program ", args.program, " storing results data in 
", tmpdir)
 
     for counter in counters:
         if counter in notcounter:
             continue
-        if args.exercise == True:
+        if args.count == True:
+            with open(tmpdir + "/" + program + "-" + counter + ".txt", 'w') as 
file:
+                p = subprocess.Popen(["pmcstat",
+                                      "-p", counter, args.program],
+                                     text=True, stderr=file, stdout=file)
+                result = p.communicate()[1]
+                print(result)
+        elif args.sample == True:
             p = subprocess.Popen(["pmcstat",
                                   "-O", tmpdir + "/" + program + "-" + counter 
+ ".pmc",
                                   "-P", counter, args.program],
                                  text=True, stderr=PIPE)
             result = p.communicate()[1]
             print(result)
+
         else:
             p = subprocess.Popen(["pmcstat", "-p", counter, args.program],
                              text=True, stderr=PIPE)

Reply via email to