From patchwork Fri Dec 9 20:15:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Llu=C3=ADs_Vilanova?= X-Patchwork-Id: 130459 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id E461E1007D7 for ; Sat, 10 Dec 2011 07:15:54 +1100 (EST) Received: from localhost ([::1]:48029 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZ6rG-00083d-7c for incoming@patchwork.ozlabs.org; Fri, 09 Dec 2011 15:15:50 -0500 Received: from eggs.gnu.org ([140.186.70.92]:49160) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZ6r9-00080k-Hb for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RZ6r7-0003HB-Vu for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:43 -0500 Received: from gw.ac.upc.edu ([147.83.30.3]:40201) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZ6r7-0003Gy-I1 for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:41 -0500 Received: from localhost (unknown [84.88.53.92]) by gw.ac.upc.edu (Postfix) with ESMTP id 5B7BD6B01CA for ; Fri, 9 Dec 2011 21:15:40 +0100 (CET) To: qemu-devel@nongnu.org From: =?utf-8?b?TGx1w61z?= Vilanova Date: Fri, 09 Dec 2011 21:15:33 +0100 Message-ID: <20111209201532.11487.62125.stgit@ginnungagap.bsc.es> In-Reply-To: <20111209201430.11487.82078.stgit@ginnungagap.bsc.es> References: <20111209201430.11487.82078.stgit@ginnungagap.bsc.es> User-Agent: StGit/0.15 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 147.83.30.3 Subject: [Qemu-devel] [PATCH 4/7] trace: [all] Add "vbbl" TCG tracing event X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: LluĂ­s Vilanova --- target-alpha/translate.c | 1 + target-arm/translate.c | 1 + target-cris/translate.c | 1 + target-i386/translate.c | 1 + target-lm32/translate.c | 1 + target-m68k/translate.c | 1 + target-microblaze/translate.c | 1 + target-mips/translate.c | 1 + target-ppc/translate.c | 1 + target-s390x/translate.c | 1 + target-sh4/translate.c | 1 + target-sparc/translate.c | 1 + target-unicore32/translate.c | 1 + target-xtensa/translate.c | 1 + trace-events | 13 +++++++++++++ 15 files changed, 27 insertions(+), 0 deletions(-) diff --git a/target-alpha/translate.c b/target-alpha/translate.c index a961159..18f5428 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -3368,6 +3368,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-arm/translate.c b/target-arm/translate.c index 0f35b60..b0b36f3 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -9877,6 +9877,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); tcg_clear_temp_count(); diff --git a/target-cris/translate.c b/target-cris/translate.c index a871e7f..cac22c9 100644 --- a/target-cris/translate.c +++ b/target-cris/translate.c @@ -3266,6 +3266,7 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { check_breakpoint(env, dc); diff --git a/target-i386/translate.c b/target-i386/translate.c index 1ef8d16..7192ce9 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -7797,6 +7797,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); for(;;) { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-lm32/translate.c b/target-lm32/translate.c index 0be105d..2535fb7 100644 --- a/target-lm32/translate.c +++ b/target-lm32/translate.c @@ -1053,6 +1053,7 @@ static void gen_intermediate_code_internal(CPUState *env, } gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { check_breakpoint(env, dc); diff --git a/target-m68k/translate.c b/target-m68k/translate.c index fe750e2..9cb8139 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -2990,6 +2990,7 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { pc_offset = dc->pc - pc_start; gen_throws_exception = NULL; diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c index f976311..6b6a593 100644 --- a/target-microblaze/translate.c +++ b/target-microblaze/translate.c @@ -1658,6 +1658,7 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { #if SIM_COMPAT diff --git a/target-mips/translate.c b/target-mips/translate.c index 73c4c5e..0076058 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -12414,6 +12414,7 @@ gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, max_insns = CF_COUNT_MASK; LOG_DISAS("\ntb %p idx %d hflags %04x\n", tb, ctx.mem_idx, ctx.hflags); gen_icount_start(); + gen_helper_trace_vbbl(pc_start); while (ctx.bstate == BS_NONE) { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-ppc/translate.c b/target-ppc/translate.c index 66eae30..af78360 100644 --- a/target-ppc/translate.c +++ b/target-ppc/translate.c @@ -9463,6 +9463,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); /* Set env in case of segfault during code fetch */ while (ctx.exception == POWERPC_EXCP_NONE && gen_opc_ptr < gen_opc_end) { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { diff --git a/target-s390x/translate.c b/target-s390x/translate.c index 9fef77c..c2a04a5 100644 --- a/target-s390x/translate.c +++ b/target-s390x/translate.c @@ -5147,6 +5147,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, } gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { diff --git a/target-sh4/translate.c b/target-sh4/translate.c index 2487451..d75c065 100644 --- a/target-sh4/translate.c +++ b/target-sh4/translate.c @@ -1968,6 +1968,7 @@ gen_intermediate_code_internal(CPUState * env, TranslationBlock * tb, if (max_insns == 0) max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); while (ctx.bstate == BS_NONE && gen_opc_ptr < gen_opc_end) { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-sparc/translate.c b/target-sparc/translate.c index d261112..415d996 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -5268,6 +5268,7 @@ static inline void gen_intermediate_code_internal(TranslationBlock * tb, if (max_insns == 0) max_insns = CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c index 4d0aa43..8edca98 100644 --- a/target-unicore32/translate.c +++ b/target-unicore32/translate.c @@ -1888,6 +1888,7 @@ static inline void gen_intermediate_code_internal(CPUState *env, } gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { QTAILQ_FOREACH(bp, &env->breakpoints, entry) { diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c index 8b9d9ed..3f741ac 100644 --- a/target-xtensa/translate.c +++ b/target-xtensa/translate.c @@ -2434,6 +2434,7 @@ static void gen_intermediate_code_internal( reset_used_window(&dc); gen_icount_start(); + gen_helper_trace_vbbl(pc_start); if (env->singlestep_enabled && env->exception_taken) { env->exception_taken = 0; diff --git a/trace-events b/trace-events index 8278959..6dac6ae 100644 --- a/trace-events +++ b/trace-events @@ -640,3 +640,16 @@ win_helper_retry(uint32_t tl) "tl=%d" vcpu_init(void *vcpu) "%p" # Reset the state of a vCPU vcpu_reset(void *vcpu) "%p" + + +## Guest events + +# Start BBL execution +# +# Note: QEMU's basic blocks do not necessarily finish in a control flow +# instruction. +# +# Targets: all +# +# vaddr : starting virtual address +disable tcg vbbl(uint64_t vaddr) "vaddr=0x%016"PRIx64