2009-01-16 11:02:18

by Metzger, Markus T

[permalink] [raw]
Subject: [patch 4/5] x86, ftrace, hw-branch-tracer: reset trace on close

Reset the ftrace buffer on close. Since we use cyclic buffers to store
the trace, the trace is not contiguous, anyway. This behaviour should
be more natural.

Signed-off-by: Markus Metzger <[email protected]>
---

Index: ftrace/kernel/trace/trace_hw_branches.c
===================================================================
--- ftrace.orig/kernel/trace/trace_hw_branches.c 2009-01-14 15:26:11.000000000 +0100
+++ ftrace/kernel/trace/trace_hw_branches.c 2009-01-14 15:26:16.000000000 +0100
@@ -272,6 +272,11 @@
mutex_unlock(&bts_tracer_mutex);
}

+static void trace_bts_close(struct trace_iterator *iter)
+{
+ tracing_reset_online_cpus(iter->tr);
+}
+
void trace_hw_branch_oops(void)
{
mutex_lock(&bts_tracer_mutex);
@@ -290,7 +295,8 @@
.print_line = bts_trace_print_line,
.start = bts_trace_start,
.stop = bts_trace_stop,
- .open = trace_bts_prepare
+ .open = trace_bts_prepare,
+ .close = trace_bts_close
};

__init static int init_bts_trace(void)
---------------------------------------------------------------------
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
Registergericht: Muenchen HRB 47456 Ust.-IdNr.
VAT Registration No.: DE129385895
Citibank Frankfurt (BLZ 502 109 00) 600119052

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


2009-01-16 15:01:58

by Steven Rostedt

[permalink] [raw]
Subject: Re: [patch 4/5] x86, ftrace, hw-branch-tracer: reset trace on close


On Fri, 2009-01-16 at 12:01 +0100, Markus Metzger wrote:
> Reset the ftrace buffer on close. Since we use cyclic buffers to store
> the trace, the trace is not contiguous, anyway. This behaviour should
> be more natural.

So you want multiple reads of /debug/tracing/trace to return different
output? Kind of like the trace_pipe? But trace_pipe is a real consumer.

>
> Signed-off-by: Markus Metzger <[email protected]>
> ---
>
> Index: ftrace/kernel/trace/trace_hw_branches.c
> ===================================================================
> --- ftrace.orig/kernel/trace/trace_hw_branches.c 2009-01-14 15:26:11.000000000 +0100
> +++ ftrace/kernel/trace/trace_hw_branches.c 2009-01-14 15:26:16.000000000 +0100
> @@ -272,6 +272,11 @@
> mutex_unlock(&bts_tracer_mutex);
> }
>
> +static void trace_bts_close(struct trace_iterator *iter)
> +{
> + tracing_reset_online_cpus(iter->tr);
> +}
> +
> void trace_hw_branch_oops(void)
> {
> mutex_lock(&bts_tracer_mutex);
> @@ -290,7 +295,8 @@

BTW, can you run your diff with the -p option. This will help in knowing
which function the change is in. There's some hunks where it is
ambiguous. If you use quilt, you can add:

QUILT_DIFF_OPTS='-p'

to you .quiltrc file.

-- Steve



> .print_line = bts_trace_print_line,
> .start = bts_trace_start,
> .stop = bts_trace_stop,
> - .open = trace_bts_prepare
> + .open = trace_bts_prepare,
> + .close = trace_bts_close
> };
>
> __init static int init_bts_trace(void)
> ---------------------------------------------------------------------
> Intel GmbH
> Dornacher Strasse 1
> 85622 Feldkirchen/Muenchen Germany
> Sitz der Gesellschaft: Feldkirchen bei Muenchen
> Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
> Registergericht: Muenchen HRB 47456 Ust.-IdNr.
> VAT Registration No.: DE129385895
> Citibank Frankfurt (BLZ 502 109 00) 600119052
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>

2009-01-16 16:19:47

by Metzger, Markus T

[permalink] [raw]
Subject: RE: [patch 4/5] x86, ftrace, hw-branch-tracer: reset trace on close

>-----Original Message-----
>From: Steven Rostedt [mailto:[email protected]]
>Sent: Friday, January 16, 2009 4:02 PM
>To: Metzger, Markus T

>On Fri, 2009-01-16 at 12:01 +0100, Markus Metzger wrote:
>> Reset the ftrace buffer on close. Since we use cyclic buffers to store
>> the trace, the trace is not contiguous, anyway. This behaviour should
>> be more natural.
>
>So you want multiple reads of /debug/tracing/trace to return different
>output? Kind of like the trace_pipe? But trace_pipe is a real consumer.

Yes.
The trace chunks are not contiguous (in this version), so it does not make sense to append them.
I don't expect trace_pipe to work with the hw-branch-tracer.


>BTW, can you run your diff with the -p option. This will help in knowing
>which function the change is in. There's some hunks where it is
>ambiguous. If you use quilt, you can add:
>
> QUILT_DIFF_OPTS='-p'
>
>to you .quiltrc file.

Thanks.

markus.
---------------------------------------------------------------------
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
Registergericht: Muenchen HRB 47456 Ust.-IdNr.
VAT Registration No.: DE129385895
Citibank Frankfurt (BLZ 502 109 00) 600119052

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.