trappy merge requestshttps://gitlab.arm.com/tooling/trappy/-/merge_requests2021-11-25T13:47:28Zhttps://gitlab.arm.com/tooling/trappy/-/merge_requests/297Fixed error when parsing android user mark2021-11-25T13:47:28ZDarryl GreenFixed error when parsing android user mark*Created by: Pablololo12*
I found out that when you use the Android tools to create trace markers from within the app, it doesn't recognize the PID of the app on the Trace.endSection() due to the regex. With this fix you can see when a ...*Created by: Pablololo12*
I found out that when you use the Android tools to create trace markers from within the app, it doesn't recognize the PID of the app on the Trace.endSection() due to the regex. With this fix you can see when a trace marker ends.https://gitlab.arm.com/tooling/trappy/-/merge_requests/287trappy/cache: Store the csv in utf-8 charset explicitly2021-11-25T13:47:28ZDarryl Greentrappy/cache: Store the csv in utf-8 charset explicitly*Created by: credp*
When we load the files from trace-cmd output, we explicitly choose
to load them using utf-8. This means we may have characters in
our trace which cannot be represented in ascii, which makes pandas
upset when we tr...*Created by: credp*
When we load the files from trace-cmd output, we explicitly choose
to load them using utf-8. This means we may have characters in
our trace which cannot be represented in ascii, which makes pandas
upset when we try to store the parsed dataframes in the csv cache.
This is not an issue for Python3 versions, as the to_csv method
defaults to utf-8, whilst the Python2 to_csv method defaults to
ascii.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>https://gitlab.arm.com/tooling/trappy/-/merge_requests/260trappy/ftrace: merge primary and secondary DFs based on pivot2021-11-25T13:47:27ZDarryl Greentrappy/ftrace: merge primary and secondary DFs based on pivot*Created by: joelagnel*
I hacked something up that's working, just posting here. Basic idea is concatenate the DFS, mark them as primary/secondary, walk through them and remember the secondary information, propagate it to primary and re...*Created by: joelagnel*
I hacked something up that's working, just posting here. Basic idea is concatenate the DFS, mark them as primary/secondary, walk through them and remember the secondary information, propagate it to primary and rebuild the primary DF. I haven't written test cases yet. (CC @derkling @bjackman @sinkap)
Here's a gist showing it working in @derkling 's notebook:
https://gist.github.com/joelagnel/cc08ba964e40467e828741c691011ffc
https://gitlab.arm.com/tooling/trappy/-/merge_requests/258trappy: add support to parse TGID in systrace2021-11-25T13:47:27ZDarryl Greentrappy: add support to parse TGID in systrace*Created by: joelagnel*
TGID is a fundamental property tracked in systrace for each trace record. Add
support to parse it if its available.
Change-Id: Ie79698d90e0406cc11c52d364144ec08c33dfac4
Signed-off-by: Joel Fernandes <joelaf@...*Created by: joelagnel*
TGID is a fundamental property tracked in systrace for each trace record. Add
support to parse it if its available.
Change-Id: Ie79698d90e0406cc11c52d364144ec08c33dfac4
Signed-off-by: Joel Fernandes <joelaf@google.com>https://gitlab.arm.com/tooling/trappy/-/merge_requests/238[RFC] Some clarifications for plotting code2021-11-25T13:47:24ZDarryl Green[RFC] Some clarifications for plotting code*Created by: bjackman*
I've been confused a few times while using the plotting code. This is a set of docstrings and cleanups that I made while trying to understand it. I've marked this RFC because:
- it's very likely some of the stu...*Created by: bjackman*
I've been confused a few times while using the plotting code. This is a set of docstrings and cleanups that I made while trying to understand it. I've marked this RFC because:
- it's very likely some of the stuff I've added is wrong or belongs somewhere else (i.e. it needs careful review from people who properly understand the code)
- Some of it is a bit subjective
So I guess consider this low-priority :)https://gitlab.arm.com/tooling/trappy/-/merge_requests/243[RFC] Systrace's custom events formatting2021-11-25T13:47:24ZDarryl Green[RFC] Systrace's custom events formatting*Created by: derkling*
The Android run-time can inject interesting function profiling events from user-space which unfortunately are not formatted using the `key=value` pairs required by TRAPpy.
The format string it uses is expected ...*Created by: derkling*
The Android run-time can inject interesting function profiling events from user-space which unfortunately are not formatted using the `key=value` pairs required by TRAPpy.
The format string it uses is expected by other tools, e.g. systrace, thus changing the formatting at the source can be much more complex than dealing with in in TRAPpy. Since TRAPpy learnt to parse systrace events, we can try to improve its skills by properly parsing these custom events too.
The basic idea is to add a simple call-back based mechanism which allows a specific parser (i.e. `SysTrace` ) to reformat a data string into a TRAPpy compliant format before processing it the usual way.
This is an initial prototype which I share to get feedback on the overall approach before going further to develop more complex functionalities. Thus, I've not yet added a test for this feature, however a simple example trace can contain these events:
```
RenderThread-9568 ( 9546) [006] ...1 3210.844141: tracing_mark_write: B|9546|flush drawing commands
hwuiTask1-9571 ( 9546) [007] ...1 3210.844145: tracing_mark_write: E
hwuiTask1-9571 ( 9546) [007] ...1 3210.844151: tracing_mark_write: B|9546|tessellateAmbientShadow
hwuiTask1-9571 ( 9546) [007] ...1 3210.844159: tracing_mark_write: E
hwuiTask1-9571 ( 9546) [007] ...1 3210.844162: tracing_mark_write: B|9546|tessellateSpotShadow
hwuiTask1-9571 ( 9546) [007] ...1 3210.844182: tracing_mark_write: E
```
As additional goals, not yet provided by this prototype, it would be nice to:
1. support the generation and registration on-the-fly of new dataframes from within the callback, which should allow to create separate dataframe for different classes of custom events
2. make sure the systrace viewer and the TRAPpy generated dataframes are on the same timeline, which will require to play with basetime and windows... but, since this is a more complex task, I would keep this topic for a different PR.