diff mbox

[RFC,3/4] trace: Duplicate the output of the function trace logs to STM

Message ID 1464779939-24986-4-git-send-email-zhang.chunyan@linaro.org
State New
Headers show

Commit Message

Chunyan Zhang June 1, 2016, 11:18 a.m. UTC
This patch adds an output from Ftrace to STM.  That being said,
Function trace messages would also be duplicated to STM buffer when
being stored into ring buffer.

Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>

---
 kernel/trace/trace.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
1.9.1

Comments

Chunyan Zhang June 8, 2016, 11:02 a.m. UTC | #1
On Tue, Jun 7, 2016 at 6:00 PM, Alexander Shishkin
<alexander.shishkin@linux.intel.com> wrote:
> Chunyan Zhang <zhang.chunyan@linaro.org> writes:

>

>> This patch adds an output from Ftrace to STM.

>

> But does it?

>

>> That being said,

>> Function trace messages would also be duplicated to STM buffer when

>> being stored into ring buffer.

>

> Not sure what you mean here. What's "STM buffer"?


Sorry if this is ambiguously expression, I mean the buffer which
stores the trace data from STM, such as ETB/TMC for CoreSight.

>

>>

>> Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>

>> ---

>>  kernel/trace/trace.c | 5 ++++-

>>  1 file changed, 4 insertions(+), 1 deletion(-)

>>

>> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c

>> index 8a4bd6b..d613053 100644

>> --- a/kernel/trace/trace.c

>> +++ b/kernel/trace/trace.c

>> @@ -44,6 +44,7 @@

>>

>>  #include "trace.h"

>>  #include "trace_output.h"

>> +#include "trace_output_stm.h"

>>

>>  /*

>>   * On boot up, the ring buffer is set to the minimum size, so that

>> @@ -1884,8 +1885,10 @@ trace_function(struct trace_array *tr,

>>       entry->ip                       = ip;

>>       entry->parent_ip                = parent_ip;

>>

>> -     if (!call_filter_check_discard(call, entry, buffer, event))

>> +     if (!call_filter_check_discard(call, entry, buffer, event)) {

>>               __buffer_unlock_commit(buffer, event);

>> +             ftrace_stm_func(ip, parent_ip);

>> +     }

>

> So this logs instruction pointers, not the actual events. Not much is

> duplicated like the message suggests, but it also doesn't seem very

> useful.


Yes, only knowing function pointers may not be very useful, if doing
in this way is acceptable I intend to add more interfaces to export
more information to STM in the feature, I will appreciate if you can
tell me what information you think is _absolutely_ necessary.

Thanks,
Chunyan

>

> Regards,

> --

> Alex
diff mbox

Patch

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8a4bd6b..d613053 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -44,6 +44,7 @@ 
 
 #include "trace.h"
 #include "trace_output.h"
+#include "trace_output_stm.h"
 
 /*
  * On boot up, the ring buffer is set to the minimum size, so that
@@ -1884,8 +1885,10 @@  trace_function(struct trace_array *tr,
 	entry->ip			= ip;
 	entry->parent_ip		= parent_ip;
 
-	if (!call_filter_check_discard(call, entry, buffer, event))
+	if (!call_filter_check_discard(call, entry, buffer, event)) {
 		__buffer_unlock_commit(buffer, event);
+		ftrace_stm_func(ip, parent_ip);
+	}
 }
 
 #ifdef CONFIG_STACKTRACE