mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 14:53:54 -06:00
tcg: add perfmap and jitdump
Add ability to dump /tmp/perf-<pid>.map and jit-<pid>.dump. The first one allows the perf tool to map samples to each individual translation block. The second one adds the ability to resolve symbol names, line numbers and inspect JITed code. Example of use: perf record qemu-x86_64 -perfmap ./a.out perf report or perf record -k 1 qemu-x86_64 -jitdump ./a.out DEBUGINFOD_URLS= perf inject -j -i perf.data -o perf.data.jitted perf report -i perf.data.jitted Co-developed-by: Vanderson M. do Rosario <vandersonmr2@gmail.com> Co-developed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20230112152013.125680-4-iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
7c10cb38cc
commit
5584e2dbe8
10 changed files with 505 additions and 0 deletions
|
@ -53,6 +53,7 @@
|
|||
#include "signal-common.h"
|
||||
#include "loader.h"
|
||||
#include "user-mmap.h"
|
||||
#include "accel/tcg/perf.h"
|
||||
|
||||
#ifdef CONFIG_SEMIHOSTING
|
||||
#include "semihosting/semihost.h"
|
||||
|
@ -423,6 +424,16 @@ static void handle_arg_abi_call0(const char *arg)
|
|||
}
|
||||
#endif
|
||||
|
||||
static void handle_arg_perfmap(const char *arg)
|
||||
{
|
||||
perf_enable_perfmap();
|
||||
}
|
||||
|
||||
static void handle_arg_jitdump(const char *arg)
|
||||
{
|
||||
perf_enable_jitdump();
|
||||
}
|
||||
|
||||
static QemuPluginList plugins = QTAILQ_HEAD_INITIALIZER(plugins);
|
||||
|
||||
#ifdef CONFIG_PLUGIN
|
||||
|
@ -493,6 +504,10 @@ static const struct qemu_argument arg_table[] = {
|
|||
{"xtensa-abi-call0", "QEMU_XTENSA_ABI_CALL0", false, handle_arg_abi_call0,
|
||||
"", "assume CALL0 Xtensa ABI"},
|
||||
#endif
|
||||
{"perfmap", "QEMU_PERFMAP", false, handle_arg_perfmap,
|
||||
"", "Generate a /tmp/perf-${pid}.map file for perf"},
|
||||
{"jitdump", "QEMU_JITDUMP", false, handle_arg_jitdump,
|
||||
"", "Generate a jit-${pid}.dump file for perf"},
|
||||
{NULL, NULL, false, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue