qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [Tracing][PATCH] Allow bulk enabling of trace events at


From: Stefan Hajnoczi
Subject: [Qemu-devel] Re: [Tracing][PATCH] Allow bulk enabling of trace events at compile time.
Date: Tue, 13 Jul 2010 15:04:04 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

On Tue, Jul 13, 2010 at 05:04:16PM +0530, Prerna Saxena wrote:
> [PATCH] For 'simple' trace backend, allow bulk enabling/disabling of trace
>  events at compile time.
>  Trace events that are preceded by 'disable' keyword are compiled in, but 
>  turned off by default. These can individually be turned on using the monitor.
>  All other trace events are enabled by default.
> 
> TODO :
> This could be enhanced when the trace-event namespace is partitioned into a
> group and an ID within that group. In such a case, marking a group as enabled 
> would automatically enable all trace-events listed under it.
> 
> Signed-off-by: Prerna Saxena <address@hidden>
> ---

Applied, thanks!

Stefan

>  trace-events |    3 +++
>  tracetool    |   36 ++++++++++++++++++++++++++++++++----
>  2 files changed, 35 insertions(+), 4 deletions(-)
> 
> diff --git a/trace-events b/trace-events
> index a533414..cb5ef00 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -17,6 +17,9 @@
>  # Example: qemu_malloc(size_t size) "size %zu"
>  #
>  # The "disable" keyword will build without the trace event.
> +# In case of 'simple' trace backend, it will allow the trace event to be
> +# compiled, but this would be turned off by default. It can be toggled on 
> via 
> +# the monitor.
>  #
>  # The <name> must be a valid as a C function name.
>  #
> diff --git a/tracetool b/tracetool
> index b7a0499..98d23fb 100755
> --- a/tracetool
> +++ b/tracetool
> @@ -73,6 +73,20 @@ get_fmt()
>      echo "$fmt"
>  }
> 
> +# Get the state of a trace event
> +get_state()
> +{
> +    local str disable state
> +    str=$(get_name "$1")
> +    disable=${str##disable }
> +    if [ "$disable" = "$str" ] ; then
> +        state=1
> +    else
> +        state=0
> +    fi
> +    echo "$state"
> +}
> +
>  linetoh_begin_nop()
>  {
>      return
> @@ -155,12 +169,16 @@ cast_args_to_ulong()
> 
>  linetoh_simple()
>  {
> -    local name args argc ulong_args
> +    local name args argc ulong_args state
>      name=$(get_name "$1")
>      args=$(get_args "$1")
>      argc=$(get_argc "$1")
>      ulong_args=$(cast_args_to_ulong "$1")
> 
> +    state=$(get_state "$1")
> +    if [ "$state" = "0" ]; then
> +        name=${name##disable }
> +    fi
>      cat <<EOF
>  static inline void trace_$name($args) {
>      trace$argc($simple_event_num, $ulong_args);
> @@ -191,10 +209,14 @@ EOF
> 
>  linetoc_simple()
>  {
> -    local name
> +    local name state
>      name=$(get_name "$1")
> +    state=$(get_state "$1")
> +    if [ "$state" = "0" ] ; then
> +        name=${name##disable }
> +    fi
>      cat <<EOF
> -{.tp_name = "$name", .state=0},
> +{.tp_name = "$name", .state=$state},
>  EOF
>      simple_event_num=$((simple_event_num + 1))
>  }
> @@ -305,7 +327,13 @@ convert()
>          disable=${str%%disable *}
>          echo
>          if test -z "$disable"; then
> -            "lineto$1_nop" "${str##disable }"
> +            # Pass the disabled state as an arg to lineto$1_simple().
> +            # For all other cases, call lineto$1_nop()
> +            if [ $backend = "simple" ]; then
> +                "$process_line" "$str"
> +            else
> +                "lineto$1_nop" "${str##disable }"
> +            fi
>          else
>              "$process_line" "$str"
>          fi
> -- 
> 1.6.2.5
> 
> 
> 
> -- 
> Prerna Saxena
> 
> Linux Technology Centre,
> IBM Systems and Technology Lab,
> Bangalore, India
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]