diff options
| author | Mac Mollison <mollison@cs.unc.edu> | 2010-04-03 19:08:52 -0400 |
|---|---|---|
| committer | Mac Mollison <mollison@cs.unc.edu> | 2010-04-03 19:08:52 -0400 |
| commit | bd66e7ca131751d20c4dbb59cff9df4bd716f9e4 (patch) | |
| tree | 611058eb9e5582900c6211f49976390139f38138 | |
| parent | 13e0520cafd6280bcdf90208c699a6925efd9fba (diff) | |
Noted visualizer dependencies in doc
Also, removed obsolete README file
| -rw-r--r-- | README | 105 | ||||
| -rw-r--r-- | doc/index.txt | 2 |
2 files changed, 1 insertions, 106 deletions
| @@ -1,105 +0,0 @@ | |||
| 1 | See the LITMUS Wiki page for a general explanation of this tool. | ||
| 2 | |||
| 3 | unit_trace consists of two modules and a core. The ``core'' is basically | ||
| 4 | a bunch of code, implemented as Python iterators, which converts the | ||
| 5 | raw trace data into a sequence of record objects, implemented in | ||
| 6 | Python. The modules are: | ||
| 7 | |||
| 8 | 1) A simple module that outputs the contents of each record to | ||
| 9 | stdout. This module, along with most of the core, can be found in the | ||
| 10 | reader/ directory. There is a sample script -- look at | ||
| 11 | sample_script.py in the reader/ directory (it's pretty | ||
| 12 | self-explanatory). Note that Mac is the one who coded most of the | ||
| 13 | this, though I can probably try to answer any questions about it since | ||
| 14 | I've had to go in there from time to time. | ||
| 15 | |||
| 16 | 2) The visualizer. Now, the GUI as it stands is very basic -- it's | ||
| 17 | basically just a shell for the core visualizer component. How to open | ||
| 18 | a file is obvious -- but note that you can open several files at a | ||
| 19 | time (since more often than not a trace consists of more than one | ||
| 20 | file, typically one for each CPU). | ||
| 21 | |||
| 22 | Most of the code for this is in the viz/ directory, but to run it, the | ||
| 23 | file you want to execute is visualizer.py (in the main directory). | ||
| 24 | |||
| 25 | A 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 | |||
| 55 | But 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 | |||
| 85 | How to install: | ||
| 86 | |||
| 87 | You should type | ||
| 88 | |||
| 89 | git clone -b wip-gary ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/unit-trace.git | ||
| 90 | |||
| 91 | to check out the repository. Note that you shouldn't check out the | ||
| 92 | master branch, as it's pretty outdated. It's all Python so far, so no | ||
| 93 | compiling or anything like that is necessary. | ||
| 94 | |||
| 95 | Requirements: | ||
| 96 | |||
| 97 | You're going to need Python 2.5 to run this. You'll also need to | ||
| 98 | install the pycairo and pygtk libraries. If anyone has questions about | ||
| 99 | how to do this or what these are, ask me. | ||
| 100 | |||
| 101 | Miscellanies: | ||
| 102 | |||
| 103 | Of course, let me know if you find any bugs (I'm sure there are | ||
| 104 | plenty, though, since this is fairly alpha software), if you're | ||
| 105 | unable to run it, or if you have any questions. \ No newline at end of file | ||
diff --git a/doc/index.txt b/doc/index.txt index cc9c766..4e8b089 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 ## |
| 21 | Unit-Trace is based on Python 2.6, so make sure that is available on your system. | 21 | Dependencies: Python 2.6; for the visualizer, pygtk and pycairo. |
| 22 | 22 | ||
| 23 | Unit_Trace consists of a Python module called `unit_trace` (encapsulated in the `unit_trace` directory) and a font-end script called `unit-trace`. | 23 | Unit_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 | ||
