From b8abb15ca74840e19f1d623cd3ed2db48fba4557 Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Thu, 9 Aug 2018 03:45:32 +0100 Subject: [PATCH] gem5: trace use -ExecSymbol --- README.adoc | 2 +- build-usage.adoc | 2 +- qemu | 2 +- trace-boot | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.adoc b/README.adoc index 65a538b..cd070bb 100644 --- a/README.adoc +++ b/README.adoc @@ -7196,7 +7196,7 @@ Breakdown: * `25007500`: time count in some unit. Note how the microops execute at further timestamps. * `system.cpu`: distinguishes between CPUs when there are more than one * `T0`: thread number. TODO: link:https://superuser.com/questions/133082/hyper-threading-and-dual-core-whats-the-difference/995858#995858[hyperthread]? How to play with it? -* `@start_kernel`: we are in the `start_kernel` function. Awesome feature! Implemented with libelf https://sourceforge.net/projects/elftoolchain/ copy pasted in-tree `ext/libelf`. To get raw addresses, remove the `ExecSymbol`, which is enabled by `Exec`. +* `@start_kernel`: we are in the `start_kernel` function. Awesome feature! Implemented with libelf https://sourceforge.net/projects/elftoolchain/ copy pasted in-tree `ext/libelf`. To get raw addresses, remove the `ExecSymbol`, which is enabled by `Exec`. This can be done with `Exec,-ExecSymbol`. * `.1` as in `@start_kernel.1`: index of the microop * `stp`: instruction disassembly. Seems to use `.isa` files dispersed per arch, which is an in house format: http://gem5.org/ISA_description_system * `strxi_uop x29, [ureg0]`: microop disassembly. diff --git a/build-usage.adoc b/build-usage.adoc index 52db7fa..d8a4c97 100644 --- a/build-usage.adoc +++ b/build-usage.adoc @@ -26,7 +26,7 @@ Mnemonic: `fast`. |`-g` | |Enable gem5 build or force its rebuild. |`-h` | |Show this help message. -|`-L` |`VARIANT` |Linux kernel build variant. +|`-L` |`VARIANT` |Linux kernel build variant. |`-I` | |Enable initramfs for the current build. |`-i` | |Enable initrd for the current build. |`-K` |`KERNEL_CONFIG_FILE` |Use `KERNEL_CONFIG_FILE` as the exact Linux kernel diff --git a/qemu b/qemu index f750236..c42634d 160000 --- a/qemu +++ b/qemu @@ -1 +1 @@ -Subproject commit f7502360397d291be04bc040e9f96c92ff2d8030 +Subproject commit c42634d8e3428cfa60672c3ba89cabefc720cde9 diff --git a/trace-boot b/trace-boot index 928982c..c9eda6c 100755 --- a/trace-boot +++ b/trace-boot @@ -15,8 +15,7 @@ done shift "$(($OPTIND - 1))" set_common_vars "$arch" "$gem5" if "$gem5"; then - # Exactly what Exec enabled, but without ExecSymbol and ExecMicro. - time ./run -a aarch64 -E 'm5 exit' -g -T 'ExecEnable,ExecTicks,ExecOpClass,ExecThread,ExecEffAddr,ExecResult,ExecMacro,ExecFaulting,ExecUser,ExecKernel' "$@" + time ./run -a "$arch" -E 'm5 exit' -g -T 'Exec,-ExecSymbol,-ExecMicro' "$@" else time ./run -a "$arch" -e 'init=/poweroff.out' -T exec_tb "$@" time ./qemu-trace2txt -a "$arch"