dolphin/Source/Core
Gabriel Corona cdce5ace25 Add Linux perf JIT support (/tmp/perf-$pid.map)
'perf' is the standard builtin tool for performance analysis on recent
Linux kernel. Its source code is shipped within the kernel repository.

'perf' has basic support for JIT. For each process, it can read a file
named /tmp/perf-$PID.map. This file contains mapping from address
range to function name in the format:

  41187e2a 1a EmuCode_804a33fc

with the following entries:

 1. beginning of the range (hexadecimal);
 2. size of the range (hexadecimal);
 3. name of the function.

We supply the PowerPC address of the basic block as function name.

Usage:

    DOLPHIN_PERF_DIR=/tmp dolphin-emu &
    perf record -F99 -p $(pgrep dolphin-emu) --call-graph dwarf
    perf script | stackcollapse-perf.pl | grep EmuCode__ | flamegraph.pl > profile.svg

Issue: perf does not have support for region invalidation. It reads
the file in postprocessing. It probably does not work very well if a
JIT region is reused for another basic block: wrong results should be
expected in this case. Currently, nothing is done to prevent this.
2014-11-24 23:18:18 +01:00
..
AudioCommon Various formatting and consistency fixes 2014-11-13 22:42:18 -05:00
Common Adds MCR/MRC to the ARMv7 emitter. 2014-11-16 09:29:27 +00:00
Core Add Linux perf JIT support (/tmp/perf-$pid.map) 2014-11-24 23:18:18 +01:00
DiscIO Removed SDK flag 2014-11-18 19:44:17 -05:00
DolphinQt Merge pull request #1576 from comex/osx-qt-build-fixes 2014-11-20 12:11:43 -05:00
DolphinWX Merge pull request #1586 from lioncash/ar 2014-11-22 17:42:21 -05:00
InputCommon Fix some double->float conversions. 2014-11-11 14:14:22 -05:00
UICommon Migrate global init stuff into UICommon. 2014-10-05 20:47:37 -04:00
VideoBackends Adds support for OpenGL ES draw_elements_base_vertex. 2014-11-21 18:57:32 -06:00
VideoCommon Merge pull request #1534 from FioraAeterna/fixd3dtex1x1 2014-11-21 19:12:58 +13:00
CMakeLists.txt Merge pull request #1085 from waddlesplash/refactoring 2014-10-05 21:25:44 -04:00