Message ID | 1464779939-24986-4-git-send-email-zhang.chunyan@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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"? > > 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. Regards, -- Alex
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 --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
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(-)