diff options
Diffstat (limited to 'scripts/pybootchartgui/pybootchartgui/parsing.py')
-rw-r--r-- | scripts/pybootchartgui/pybootchartgui/parsing.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py index a0f6e8e0eb..6343fd5a7b 100644 --- a/scripts/pybootchartgui/pybootchartgui/parsing.py +++ b/scripts/pybootchartgui/pybootchartgui/parsing.py | |||
@@ -170,7 +170,7 @@ class ParserState: | |||
170 | 170 | ||
171 | _relevant_files = set(["header", "proc_diskstats.log", "proc_ps.log", "proc_stat.log"]) | 171 | _relevant_files = set(["header", "proc_diskstats.log", "proc_ps.log", "proc_stat.log"]) |
172 | 172 | ||
173 | def _do_parse(state, filename, file): | 173 | def _do_parse(state, filename, file, mintime): |
174 | #print filename | 174 | #print filename |
175 | #writer.status("parsing '%s'" % filename) | 175 | #writer.status("parsing '%s'" % filename) |
176 | paths = filename.split("/") | 176 | paths = filename.split("/") |
@@ -183,7 +183,7 @@ def _do_parse(state, filename, file): | |||
183 | start = int(float(line.split()[-1])) | 183 | start = int(float(line.split()[-1])) |
184 | elif line.startswith("Ended:"): | 184 | elif line.startswith("Ended:"): |
185 | end = int(float(line.split()[-1])) | 185 | end = int(float(line.split()[-1])) |
186 | if start and end and (end - start) > 8: | 186 | if start and end and (end - start) >= mintime: |
187 | k = pn + ":" + task | 187 | k = pn + ":" + task |
188 | state.processes[pn + ":" + task] = [start, end] | 188 | state.processes[pn + ":" + task] = [start, end] |
189 | if start not in state.start: | 189 | if start not in state.start: |
@@ -196,12 +196,12 @@ def _do_parse(state, filename, file): | |||
196 | state.end[end].append(pn + ":" + task) | 196 | state.end[end].append(pn + ":" + task) |
197 | return state | 197 | return state |
198 | 198 | ||
199 | def parse_file(state, filename): | 199 | def parse_file(state, filename, mintime): |
200 | basename = os.path.basename(filename) | 200 | basename = os.path.basename(filename) |
201 | with open(filename, "rb") as file: | 201 | with open(filename, "rb") as file: |
202 | return _do_parse(state, filename, file) | 202 | return _do_parse(state, filename, file, mintime) |
203 | 203 | ||
204 | def parse_paths(state, paths): | 204 | def parse_paths(state, paths, mintime): |
205 | for path in paths: | 205 | for path in paths: |
206 | root,extension = os.path.splitext(path) | 206 | root,extension = os.path.splitext(path) |
207 | if not(os.path.exists(path)): | 207 | if not(os.path.exists(path)): |
@@ -210,7 +210,7 @@ def parse_paths(state, paths): | |||
210 | if os.path.isdir(path): | 210 | if os.path.isdir(path): |
211 | files = [ f for f in [os.path.join(path, f) for f in os.listdir(path)] ] | 211 | files = [ f for f in [os.path.join(path, f) for f in os.listdir(path)] ] |
212 | files.sort() | 212 | files.sort() |
213 | state = parse_paths(state, files) | 213 | state = parse_paths(state, files, mintime) |
214 | elif extension in [".tar", ".tgz", ".tar.gz"]: | 214 | elif extension in [".tar", ".tgz", ".tar.gz"]: |
215 | tf = None | 215 | tf = None |
216 | try: | 216 | try: |
@@ -223,11 +223,11 @@ def parse_paths(state, paths): | |||
223 | if tf != None: | 223 | if tf != None: |
224 | tf.close() | 224 | tf.close() |
225 | else: | 225 | else: |
226 | state = parse_file(state, path) | 226 | state = parse_file(state, path, mintime) |
227 | return state | 227 | return state |
228 | 228 | ||
229 | def parse(paths, prune): | 229 | def parse(paths, prune, mintime): |
230 | state = parse_paths(ParserState(), paths) | 230 | state = parse_paths(ParserState(), paths, mintime) |
231 | if not state.valid(): | 231 | if not state.valid(): |
232 | raise ParseError("empty state: '%s' does not contain a valid bootchart" % ", ".join(paths)) | 232 | raise ParseError("empty state: '%s' does not contain a valid bootchart" % ", ".join(paths)) |
233 | #monitored_app = state.headers.get("profile.process") | 233 | #monitored_app = state.headers.get("profile.process") |