summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMac Mollison <mollison@cs.unc.edu>2010-04-03 19:24:59 -0400
committerMac Mollison <mollison@cs.unc.edu>2010-04-03 19:24:59 -0400
commit010139704cf40d1acb084e6088bc8cb855bf5095 (patch)
tree8cb81de8c7b18182938ba2030f12be1b1ac4743c
parentae3ba00d4f644cc57ba784a7185466e07a561f01 (diff)
parentf511446bc9f8e54ac02c39b75389f568e9c2d6e1 (diff)
Merge branch 'master' into blocking
-rw-r--r--README105
-rw-r--r--doc/LICENSE22
-rw-r--r--doc/index.txt6
3 files changed, 27 insertions, 106 deletions
diff --git a/README b/README
deleted file mode 100644
index 4c1b772..0000000
--- a/README
+++ /dev/null
@@ -1,105 +0,0 @@
1See the LITMUS Wiki page for a general explanation of this tool.
2
3unit_trace consists of two modules and a core. The ``core'' is basically
4a bunch of code, implemented as Python iterators, which converts the
5raw trace data into a sequence of record objects, implemented in
6Python. The modules are:
7
81) A simple module that outputs the contents of each record to
9stdout. This module, along with most of the core, can be found in the
10reader/ directory. There is a sample script -- look at
11sample_script.py in the reader/ directory (it's pretty
12self-explanatory). Note that Mac is the one who coded most of the
13this, though I can probably try to answer any questions about it since
14I've had to go in there from time to time.
15
162) The visualizer. Now, the GUI as it stands is very basic -- it's
17basically just a shell for the core visualizer component. How to open
18a file is obvious -- but note that you can open several files at a
19time (since more often than not a trace consists of more than one
20file, typically one for each CPU).
21
22Most of the code for this is in the viz/ directory, but to run it, the
23file you want to execute is visualizer.py (in the main directory).
24
25A few notes on how to use the GUI:
26
27-- How to scroll is pretty obvious, though I still need to implement
28 keypresses (very trivial, but when making a GUI component from
29 scratch it always seems like there are a million little things that
30 you need to do :)
31
32-- You can view either by task or by CPU; click the tabs at the top.
33
34-- Mousing over the items (not the axes, though, since those are
35 pretty self-explanatory) gives you information about the item that
36 you moused over, displayed at the bottom.
37
38-- You can select items. You can click them individually, one at a
39 time, or you can drag or ctrl-click to select multiple.
40
41-- What you have selected is independent of what mode (task or CPU)
42 you are operating in. So if you are curious, say, when a certain
43 job is running compared to other jobs on the same CPU, you can
44 click a job in task mode and then switch to CPU mode, and it will
45 remain selected.
46
47-- Right-click to get a menu of all the items you have selected (in
48 the future this menu will be clickable, so that you can get the
49 information about an item in its own window).
50
51-- It is a bit laggy when lots of stuff is on the screen at once. This
52 should be fairly easy to optimize, if I have correctly identified
53 the problem, but it's not a huge issue (it's not _that_ slow).
54
55But wait, there's more:
56
57-- As of now unit-trace has no way to determine the algorithm that was
58 used on the trace you're loading. This is important since certain
59 sections of code work only with G-EDF in particular. The point of
60 having this special code is either to filter out bogus data or to
61 generate extra information about the schedule (e.g. priority
62 inversions). Of course, you can leave these extra steps out and
63 it will still work, but you might get extra ``bogus'' information
64 generated by the tracer or you might not get all the information
65 you want.
66
67-- To add or remove these extra steps, take a look at visualizer.py
68 and sample_script.py. You will see some code like this:
69
70 stream = reader.trace_reader.trace_reader(file_list)
71 #stream = reader.sanitizer.sanitizer(stream)
72 #stream = reader.gedf_test.gedf_test(stream)
73
74 Uncommenting those lines will run the extra steps in the pipeline.
75 The sanitizer filters out some bogus data (stuff like ``pid 0''),
76 but so far it's only been coded for a select number of traces.
77 gedf_test generates extra information about G-EDF schedules
78 (the traces that are named st-g?-?.bin). If you try to run
79 gedf_test on anything else, it will most likely fail.
80
81-- What traces are you going to use? Well, you will probably want to
82 use your own, but there are some samples you can try in the traces/
83 directory (a couple of them do give error messages, however).
84
85How to install:
86
87You should type
88
89git clone -b wip-gary ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/unit-trace.git
90
91to check out the repository. Note that you shouldn't check out the
92master branch, as it's pretty outdated. It's all Python so far, so no
93compiling or anything like that is necessary.
94
95Requirements:
96
97You're going to need Python 2.5 to run this. You'll also need to
98install the pycairo and pygtk libraries. If anyone has questions about
99how to do this or what these are, ask me.
100
101Miscellanies:
102
103Of course, let me know if you find any bugs (I'm sure there are
104plenty, though, since this is fairly alpha software), if you're
105unable to run it, or if you have any questions. \ No newline at end of file
diff --git a/doc/LICENSE b/doc/LICENSE
new file mode 100644
index 0000000..30a9810
--- /dev/null
+++ b/doc/LICENSE
@@ -0,0 +1,22 @@
1Copyright (c) 2010, UNC Real-Time Systems Group
2All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright notice,
8 this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright notice,
10 this list of conditions and the following disclaimer in the documentation
11 and/or other materials provided with the distribution.
12
13THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
17FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/doc/index.txt b/doc/index.txt
index cc9c766..135e734 100644
--- a/doc/index.txt
+++ b/doc/index.txt
@@ -18,7 +18,7 @@ Members of UNC's Real-Time Group can obtain Unit-Trace using:<br>
18<codeblock>git clone ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/unit-trace.git</codeblock> 18<codeblock>git clone ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/unit-trace.git</codeblock>
19 19
20## Installing Unit-Trace ## 20## Installing Unit-Trace ##
21Unit-Trace is based on Python 2.6, so make sure that is available on your system. 21Dependencies: Python 2.6; for the visualizer, pygtk and pycairo.
22 22
23Unit_Trace consists of a Python module called `unit_trace` (encapsulated in the `unit_trace` directory) and a font-end script called `unit-trace`. 23Unit_Trace consists of a Python module called `unit_trace` (encapsulated in the `unit_trace` directory) and a font-end script called `unit-trace`.
24 24
@@ -144,6 +144,9 @@ Contributors are required to make appropriate amendments to this documentation.
144 144
145The source is stored in [Markdown format][markdown] in the file `index.txt` and can be built into HTML with `make`. 145The source is stored in [Markdown format][markdown] in the file `index.txt` and can be built into HTML with `make`.
146 146
147## License ##
148Unit-Trace is released under the [Simplified BSD License][license].
149
147## Credits ## 150## Credits ##
148This project was created by and is maintained by the [Real-Time Systems Group][group] at the [University of North Carolina at Chapel Hill][uncch], 151This project was created by and is maintained by the [Real-Time Systems Group][group] at the [University of North Carolina at Chapel Hill][uncch],
149[Department of Computer Science][csdept]. A detailed explanation of the tool is available in [this paper][ospert_paper], from 152[Department of Computer Science][csdept]. A detailed explanation of the tool is available in [this paper][ospert_paper], from
@@ -161,3 +164,4 @@ We hope to have additional contributors in the future.
161[ospert]: http://www.artist-embedded.org/artist/Overview,1750.html 164[ospert]: http://www.artist-embedded.org/artist/Overview,1750.html
162[markdown]: http://daringfireball.net/projects/markdown/ 165[markdown]: http://daringfireball.net/projects/markdown/
163[mac]: mailto:mollison@cs.unc.edu 166[mac]: mailto:mollison@cs.unc.edu
167[license]: LICENSE