Skip to content

Releases: qais-yousef/sched-analyzer

v1.5-beta

17 Sep 14:42
Compare
Choose a tag to compare
v1.5-beta Pre-release
Pre-release

sched-analyzer

  • Add new option to capture function graph/filter
  • Capture frame information by default (Android)
  • Add more examples to README.md

sched-analyzer-pp

  • Add dedicated README.md with more verbose examples and make it part of the release tar
  • Add option to show sched-states for all tasks belonging a parent
  • Enable control TUI plots by setting start/end ts and figure height/width/xfrequency/yfrequency/grid
  • All outputs will scale when --ts-start/--ts-end are specified to operate on the captured window only
  • Add option to plot freq seen by a task by overlapping information from cpu_frequency with sched-states
  • Add option to show residency in absolute values in ms instead of % only
  • Pager the TUI output to make it better to navigate long outputs. Might cause error messages to be hidden sometimes though.

v1.4-beta

21 Apr 20:48
Compare
Choose a tag to compare
v1.4-beta Pre-release
Pre-release

Things are starting to be more stable now. So moving to a beta release. There's still more work to be done to enable debugging more sched details, but the features that are available now seems in a good place and time to expand more now. It is already helping to do real work as it is.

sched-analyzer

  • Fix tracking load_avg_thermal instead of util_avg_thermal. The latter could read 1024 when there's thermal pressure and not what the kernel uses.
  • Fix a bug in --runnable_avg option not enabling runnable_avg but load_avg due to a typo.
  • Finally support showing util_est across kernel versions due to changes in definition in v6.8 kernel.

sched-analyzer-pp

  • Create a new package-pp target in Makefile to produce a sched-analyzer-pp*.tar.gz release tarball, which is now part of the release tars.
  • Improve graph choices and summary of sched-states to make them more shareable as text and more visually readable on terminal.
  • Fix issue when freq graphs when freq is constant for a while till the end of the trace.
  • Fix issue where sched-states can contain NULL name for some tasks leading to failure processing traces that contain those.

v1.3-alpha

10 Mar 18:22
Compare
Choose a tag to compare
v1.3-alpha Pre-release
Pre-release

sched-analyzer

  • Update perfetto SDK to v42
  • Number of kallsyms parsing fixes
  • Various improvements to perfetto config
  • Enable providing addition --atrace and --ftrace categories/events via cmdline
  • Change --max-size to accept size in MiB instead of KiB. KiB unit is too small
  • Fix timestamps emitted by BPF causing perfetto to get confused and not display the tracks correctly

sched-analyzer-pp

Not included in released tar yet.

  • Rename pelt.py to sa_track.py which is a generic library to get our emitted tracks
  • Add new sched.py to show some sched states metrics and show cpu residency of tasks
  • Better handling if a requested event is empty
  • Show idle-residency TUI sequentially instead of subplots

v1.2-alpha

18 Feb 23:48
Compare
Choose a tag to compare
v1.2-alpha Pre-release
Pre-release

Release Notes:

  • Add the ability to track cpu idle states and when they miss
  • Add the ability to track IPIs and decode the callbacks from kallsyms and provide the caller/callback as debug info in the slice
  • Enable tracking irq/softirqs which is a perfetto builtin-ability
  • Enable filtering more than one comm/pid by providing the option multiple times. Helps focus the generated tracks for what's important for the use case.
  • Add new sched-analyzer-pp tool to post process the generated perfetto-trace. For now it only shows freq and idle residencies plots on TUI and enables saving raw data as csv and generated graphs as png images
  • Zero out signals of tasks when they die
  • Misc fixes and improvements

v1.1-alpha

20 Jan 01:10
Compare
Choose a tag to compare
v1.1-alpha Pre-release
Pre-release

First alpha release. It is more than proof of concept tool now and should be functional, but no wide testing coverage.

Enables capturing various PELT signals and track number of tasks running on each CPU. Preliminary task filtering support and some load balancer activities, that still require more work, are included.