Message ID | 20230630203720.528552-5-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | accel/tcg: Move perf and debuginfo support to tcg | expand |
On 30/6/23 22:36, Ilya Leoshkevich wrote: > tcg/ should not depend on accel/tcg/, but perf and debuginfo > support provided by the latter are being used by tcg/tcg.c. > > Since that's the only user, move both to tcg/. > > Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > accel/tcg/meson.build | 2 -- > accel/tcg/translate-all.c | 2 +- > hw/core/loader.c | 2 +- > linux-user/elfload.c | 2 +- > linux-user/exit.c | 2 +- > linux-user/main.c | 2 +- > softmmu/vl.c | 2 +- > {accel/tcg => tcg}/debuginfo.c | 0 > {accel/tcg => tcg}/debuginfo.h | 4 ++-- > tcg/meson.build | 3 +++ > {accel/tcg => tcg}/perf.c | 4 ++-- > {accel/tcg => tcg}/perf.h | 4 ++-- > tcg/tcg.c | 2 +- > 13 files changed, 16 insertions(+), 15 deletions(-) > rename {accel/tcg => tcg}/debuginfo.c (100%) > rename {accel/tcg => tcg}/debuginfo.h (96%) > rename {accel/tcg => tcg}/perf.c (98%) > rename {accel/tcg => tcg}/perf.h (95%) > diff --git a/accel/tcg/perf.c b/tcg/perf.c > similarity index 98% > rename from accel/tcg/perf.c > rename to tcg/perf.c > index e2813e11806..4a08fd9d259 100644 > --- a/accel/tcg/perf.c > +++ b/tcg/perf.c > @@ -10,7 +10,7 @@ > > #include "qemu/osdep.h" > #include "elf.h" > -#include "exec/exec-all.h" > +#include "exec/translation-block.h" > #include "qemu/timer.h" > #include "tcg/tcg.h" > > @@ -335,7 +335,7 @@ void perf_report_code(uint64_t guest_pc, TranslationBlock *tb, > /* FIXME: This replicates the restore_state_to_opc() logic. */ > q[insn].address = gen_insn_data[insn * start_words + 0]; > if (tb_cflags(tb) & CF_PCREL) { > - q[insn].address |= (guest_pc & TARGET_PAGE_MASK); > + q[insn].address |= (guest_pc & qemu_target_page_mask()); > } > q[insn].flags = DEBUGINFO_SYMBOL | (jitdump ? DEBUGINFO_LINE : 0); > } Could this hunk belong to patch #1?
diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 166bef173b8..083c9058391 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -12,8 +12,6 @@ tcg_ss.add(files( tcg_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c')) tcg_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_false: files('user-exec-stub.c')) tcg_ss.add(when: 'CONFIG_PLUGIN', if_true: [files('plugin-gen.c')]) -tcg_ss.add(when: libdw, if_true: files('debuginfo.c')) -tcg_ss.add(when: 'CONFIG_LINUX', if_true: files('perf.c')) specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_ss) specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files( diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index d3d4fbc1a41..58d9bd5a69e 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -62,7 +62,7 @@ #include "tb-hash.h" #include "tb-context.h" #include "internal.h" -#include "perf.h" +#include "tcg/perf.h" #include "tcg/insn-start-words.h" TBContext tb_ctx; diff --git a/hw/core/loader.c b/hw/core/loader.c index 8b7fd9e9e55..ad8d00440a7 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -62,7 +62,7 @@ #include "hw/boards.h" #include "qemu/cutils.h" #include "sysemu/runstate.h" -#include "accel/tcg/debuginfo.h" +#include "tcg/debuginfo.h" #include <zlib.h> diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 9a2ec568b09..6900974c373 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -21,7 +21,7 @@ #include "qapi/error.h" #include "qemu/error-report.h" #include "target_signal.h" -#include "accel/tcg/debuginfo.h" +#include "tcg/debuginfo.h" #ifdef _ARCH_PPC64 #undef ARCH_DLINFO diff --git a/linux-user/exit.c b/linux-user/exit.c index 3017d28a3c3..122b9d904f1 100644 --- a/linux-user/exit.c +++ b/linux-user/exit.c @@ -17,7 +17,7 @@ * along with this program; if not, see <http://www.gnu.org/licenses/>. */ #include "qemu/osdep.h" -#include "accel/tcg/perf.h" +#include "tcg/perf.h" #include "gdbstub/syscalls.h" #include "qemu.h" #include "user-internals.h" diff --git a/linux-user/main.c b/linux-user/main.c index dba67ffa362..3f65ca49db8 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -54,7 +54,7 @@ #include "signal-common.h" #include "loader.h" #include "user-mmap.h" -#include "accel/tcg/perf.h" +#include "tcg/perf.h" #ifdef CONFIG_SEMIHOSTING #include "semihosting/semihost.h" diff --git a/softmmu/vl.c b/softmmu/vl.c index b0b96f67fac..92922377210 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -97,7 +97,7 @@ #endif #include "sysemu/qtest.h" #ifdef CONFIG_TCG -#include "accel/tcg/perf.h" +#include "tcg/perf.h" #endif #include "disas/disas.h" diff --git a/accel/tcg/debuginfo.c b/tcg/debuginfo.c similarity index 100% rename from accel/tcg/debuginfo.c rename to tcg/debuginfo.c diff --git a/accel/tcg/debuginfo.h b/tcg/debuginfo.h similarity index 96% rename from accel/tcg/debuginfo.h rename to tcg/debuginfo.h index f064e1c144b..858535b5da5 100644 --- a/accel/tcg/debuginfo.h +++ b/tcg/debuginfo.h @@ -4,8 +4,8 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef ACCEL_TCG_DEBUGINFO_H -#define ACCEL_TCG_DEBUGINFO_H +#ifndef TCG_DEBUGINFO_H +#define TCG_DEBUGINFO_H #include "qemu/bitops.h" diff --git a/tcg/meson.build b/tcg/meson.build index c0252c41988..0800e1faae8 100644 --- a/tcg/meson.build +++ b/tcg/meson.build @@ -22,6 +22,9 @@ if get_option('tcg_interpreter') tcg_ss.add(files('tci.c')) endif +tcg_ss.add(when: libdw, if_true: files('debuginfo.c')) +tcg_ss.add(when: 'CONFIG_LINUX', if_true: files('perf.c')) + tcg_ss = tcg_ss.apply(config_host, strict: false) libtcg_user = static_library('tcg_user', diff --git a/accel/tcg/perf.c b/tcg/perf.c similarity index 98% rename from accel/tcg/perf.c rename to tcg/perf.c index e2813e11806..4a08fd9d259 100644 --- a/accel/tcg/perf.c +++ b/tcg/perf.c @@ -10,7 +10,7 @@ #include "qemu/osdep.h" #include "elf.h" -#include "exec/exec-all.h" +#include "exec/translation-block.h" #include "qemu/timer.h" #include "tcg/tcg.h" @@ -335,7 +335,7 @@ void perf_report_code(uint64_t guest_pc, TranslationBlock *tb, /* FIXME: This replicates the restore_state_to_opc() logic. */ q[insn].address = gen_insn_data[insn * start_words + 0]; if (tb_cflags(tb) & CF_PCREL) { - q[insn].address |= (guest_pc & TARGET_PAGE_MASK); + q[insn].address |= (guest_pc & qemu_target_page_mask()); } q[insn].flags = DEBUGINFO_SYMBOL | (jitdump ? DEBUGINFO_LINE : 0); } diff --git a/accel/tcg/perf.h b/tcg/perf.h similarity index 95% rename from accel/tcg/perf.h rename to tcg/perf.h index f92dd52c699..c96b5920a3f 100644 --- a/accel/tcg/perf.h +++ b/tcg/perf.h @@ -4,8 +4,8 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef ACCEL_TCG_PERF_H -#define ACCEL_TCG_PERF_H +#ifndef TCG_PERF_H +#define TCG_PERF_H #if defined(CONFIG_TCG) && defined(CONFIG_LINUX) /* Start writing perf-<pid>.map. */ diff --git a/tcg/tcg.c b/tcg/tcg.c index a0628fe4249..2afc5f2d0f7 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -54,7 +54,7 @@ #include "tcg/tcg-ldst.h" #include "tcg/tcg-temp-internal.h" #include "tcg-internal.h" -#include "accel/tcg/perf.h" +#include "tcg/perf.h" #ifdef CONFIG_USER_ONLY #include "exec/user/guest-base.h" #endif
tcg/ should not depend on accel/tcg/, but perf and debuginfo support provided by the latter are being used by tcg/tcg.c. Since that's the only user, move both to tcg/. Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- accel/tcg/meson.build | 2 -- accel/tcg/translate-all.c | 2 +- hw/core/loader.c | 2 +- linux-user/elfload.c | 2 +- linux-user/exit.c | 2 +- linux-user/main.c | 2 +- softmmu/vl.c | 2 +- {accel/tcg => tcg}/debuginfo.c | 0 {accel/tcg => tcg}/debuginfo.h | 4 ++-- tcg/meson.build | 3 +++ {accel/tcg => tcg}/perf.c | 4 ++-- {accel/tcg => tcg}/perf.h | 4 ++-- tcg/tcg.c | 2 +- 13 files changed, 16 insertions(+), 15 deletions(-) rename {accel/tcg => tcg}/debuginfo.c (100%) rename {accel/tcg => tcg}/debuginfo.h (96%) rename {accel/tcg => tcg}/perf.c (98%) rename {accel/tcg => tcg}/perf.h (95%)