Commit Graph

15 Commits

Author SHA1 Message Date
kris
4c2abb46e1 * Remove KTR_CPUMASK, it is not correct to set this
* Explain why 32768 entries is usually not enough

* Increase the scaling ratio to 10 to deal with 32-bit overflows that
  can occur in calculating the canvas offsets
2008-01-13 22:46:24 +00:00
sam
6ea4f452e3 o expand usage comments; add cut&paste items for bozo's like me
o add things i want to TODO list
o add Record entry to each event which back-maps to the line # in the ktr file;
  useful for finding local context when the ktr file has lots of items that
  schedgraph doesn't grok
o add missing KTR_SCHED event handlers
o expose Counter max value through a ymax method for widget building
o show timestamps in records rejected 'cuz time goes backwards
2007-11-19 04:46:37 +00:00
jeff
0923616b22 - Fix the ktr header regexp so we match lines with very large indexes.
- Add support for messages where cpu load is added to a remote cpu.
 - print unmatched lines to stdout
2007-11-12 17:33:07 +00:00
kris
fe3371c666 Add some notes clarifying usage and a couple of known bugs 2007-04-22 06:20:12 +00:00
jeff
04228656e7 - Add a horrible bit of code to detect tsc differences between processors.
This only works if there is no significant drift and all processors are
   running at the same frequency.  Fortunately, schedgraph traces on MP
   machines tend to cover less than a second so drift shouldn't be an issue.
 - KTRFile::synchstamp() iterates once over the whole list to determine the
   lowest tsc value and syncs adjusts all other values to match.  We assume
   that the first tick recorded on all cpus happened at the same instant to
   start with.
 - KTRFile::monostamp() iterates again over the whole file and checks for
   a cpu agnostic monotonically increasing clock.  If the time ever goes
   backwards the cpu responsible is adjusted further to fit.  This will
   make the possible incorrect delta between cpus as small as the shortest
   time between two events.  This time can be fairly large due to sched_lock
   essentially protecting all events.
 - KTRFile::checkstamp() now returns an adjusted timestamp.
 - StateEvent::draw() detects states that occur out of order in time and
   draws them as 0 pixels after printing a warning.
2007-01-24 21:19:56 +00:00
jeff
9ea1e03533 - Print clock information so we know if something is not reported correctly
from the tsc.
 - Set skipnext = 1 for yielding and preempted events so we don't show the
   event that adds us back to the run queue.  It used to be 2 so we would
   skip the ksegrp run queue addition and the system run queue addition
   but the ksegrp run queue has gone away.
 - Don't display down to nanosecond resolution for scheduling events right
   now.  This can sometimes cause a division by zero.
2007-01-23 22:19:27 +00:00
jeff
c164b22f4a - Add colors for up to 8 cpus. 2007-01-06 04:40:44 +00:00
scottl
01fb37711b Teach schedgraph how to parse KTR_CRITICAL records. critical_enter/exit
events are now plotted as a counting graph, similar to CPU load, so that
their duration and critnest values can be visualized.
2005-11-21 21:27:40 +00:00
rwatson
192c946ba5 Fix two minor typos that caused schedgraph to exit with an exception
when running on traces referencing >2 CPUs.
2005-11-06 17:43:25 +00:00
jeff
dfd3ed6e5d - ktrace(1) has nothing to do with schedgraph. Remove that from the
instructions.
2005-03-14 11:52:24 +00:00
arr
8de6777f0a - Add some notes on what is required to run schedgraph.py successfully.
This was pulled from Jeff Roberson's email to current@ "the other day."

Approved by: jeff@
2004-12-28 00:49:02 +00:00
jeff
7b0ff93d2d - For preemption and yield events, we want to skip the next two state events
as they are the setrunqueue() and sched_add() calls.  Since they happen
   immediately before the thread is placed on a run queue they would normally
   dwarf the more informative preemption or yield event and it is implicitly
   understood that a thread is back on the run queue as part of these events.
2004-12-26 03:25:08 +00:00
jeff
8d13141666 - Call self.checkstamp() in the cpu load parsing functions in case the
timestamp has wrapped.
2004-12-26 02:02:34 +00:00
jeff
d74da89b42 - The regexp for the load should have been (/d+), fix this so loads over 9
are properly represented.
2004-12-26 01:18:49 +00:00
jeff
02bd7382cc - Add 'schedgraph' a scheduler trace visualization tool written with
python and tkinter.  Schedgraph takes input from files produces by
   ktrdump -ct when KTR_SCHED is compiled into the kernel.  The output
   represents the states of each thread with colored line segments as well
   as colored points for non-state scheduler events.  Each line segment and
   point is clickable to obtain extra detail.
2004-12-26 00:13:07 +00:00