Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ec93bb1
feat: initial threadprofiler wrapper implementation
theodegeest Mar 8, 2026
23ae9ea
feat: basic threadprofile parsing
theodegeest Mar 8, 2026
596dfe4
feat: thread event profile graph
theodegeest Mar 9, 2026
72c7354
fix: strace internal bug
theodegeest Mar 10, 2026
c4d0fdb
feat: threadprofile shows mutex wait
theodegeest Mar 10, 2026
dd22d40
feat: threadprofile shows disk io
theodegeest Mar 10, 2026
cc1c9ed
doc: rocksdb add more capabilities
theodegeest Mar 10, 2026
74778b0
feat: spinlock and futex parking detection
theodegeest Mar 12, 2026
a3aff07
feat: speedupstackwrapper granularity option
theodegeest Mar 15, 2026
a511660
feat: rename speedup stack graph to java-speedup-stack
theodegeest Feb 24, 2026
0836d3c
feat: initial speedup stack graph implementation
theodegeest Feb 27, 2026
b06ff29
feat: added a filtering option for the strace wrapper
theodegeest Feb 27, 2026
237f2b0
refactor: filter strace events at collection time
theodegeest Feb 27, 2026
be42259
feat: added a filtering option for the offcputime wrapper
theodegeest Feb 27, 2026
8a4ee61
fix: better speedup stack components now scale with thread count
theodegeest Feb 27, 2026
306fa16
formatting: run the formatter
theodegeest Feb 27, 2026
928aa0c
feat: threadprofiler merge profiling blocks
theodegeest Mar 15, 2026
7bc5d90
feat: speedup stacks using threadprofiler
theodegeest Mar 15, 2026
02fcf03
feat: speedup stack overhead benchmark
theodegeest Mar 26, 2026
fac4b52
feat: speedup stack pretty component names
theodegeest Mar 26, 2026
6abf1ec
feat: speedup stack load imbalance component
theodegeest Mar 31, 2026
7966faf
feat: threadprofiler granularity as benchmark variable
theodegeest Apr 1, 2026
b826ab3
feat: speedup stacks integer x axis
theodegeest Apr 1, 2026
0fc3d74
cleanup: remove threadprofiler prints
theodegeest Apr 1, 2026
caf62c8
refactor: simplify speedup stack components
theodegeest Apr 2, 2026
fd13540
feat: threadprofiler base CPI benchmark
theodegeest Apr 4, 2026
bf859b7
chore: gitignore threadprofiler perf output
theodegeest Apr 4, 2026
b7c918c
feat: speedup stack initial CPI overhead
theodegeest Apr 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions benchkit/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,7 @@
)
from benchkit.utils.system import get_boot_args
from benchkit.utils.tee import teeprint
from benchkit.utils.types import (
Command,
Constants,
Environment,
PathType,
Pretty,
SplitCommand,
)
from benchkit.utils.types import Command, Constants, Environment, PathType, Pretty, SplitCommand
from benchkit.utils.variables import list_groupby

RecordKey = str
Expand Down
6 changes: 1 addition & 5 deletions benchkit/cli/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,7 @@
import black
import isort

from benchkit.cli.generate import (
generate_benchmark,
generate_campaign,
get_gitignore_content,
)
from benchkit.cli.generate import generate_benchmark, generate_campaign, get_gitignore_content
from benchkit.utils.misc import get_benchkit_temp_folder_str

_DOTGIT_DIR = Path(".git")
Expand Down
11 changes: 10 additions & 1 deletion benchkit/commandattachments/offcputime.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class Offcputime(LibbpfTools):
(default 1024)
state: filter on this thread state bitmask (eg, 2 == TASK_UNINTERRUPTIBLE)
see include/linux/sched.h
filter_comm: filter out the given comm names
"""

def __init__(
Expand All @@ -60,6 +61,7 @@ def __init__(
perf_max_stack_depth: int = -1,
stack_storage_size: int = -1,
state: int = -1,
filter_comm: list[str] = [],
platform: Platform = None,
) -> None:

Expand All @@ -78,6 +80,7 @@ def __init__(
self._perf_max_stack_depth = perf_max_stack_depth
self._stack_storage_size = stack_storage_size
self._state = state
self._filter_comm = filter_comm

self.out_file_name = "offcputime.out"
self.err_file_name = "offcputime.err"
Expand Down Expand Up @@ -166,6 +169,9 @@ def post_run_hook(
m = row_re.search(line)
if m:
name = m.group(1)
if name in self._filter_comm:
continue

pid = int(m.group(2))
delta_micro_s = int(m.group(3))

Expand All @@ -190,6 +196,9 @@ def post_run_hook(
(sum(d["total_off_time_micro_s"] for d in per_pid_dict.values()) / number_of_pids)
if number_of_pids != 0
else 0
)
),
"offcputime_total_micro_s": sum(
d["total_off_time_micro_s"] for d in per_pid_dict.values()
),
}
return return_dict
Loading