]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
tracing: Set kernel_stack's caller size properly
authorJosef Bacik <jbacik@fb.com>
Wed, 24 Sep 2014 20:14:12 +0000 (16:14 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 24 Jan 2020 23:09:40 +0000 (18:09 -0500)
I noticed when trying to use the trace-cmd python interface that reading the raw
buffer wasn't working for kernel_stack events.  This is because it uses a
stubbed version of __dynamic_array that doesn't do the __data_loc trick and
encode the length of the array into the field.  Instead it just shows up as a
size of 0.  So change this to __array and set the len to FTRACE_STACK_ENTRIES
since this is what we actually do in practice and matches how user_stack_trace
works.

Link: http://lkml.kernel.org/r/1411589652-1318-1-git-send-email-jbacik@fb.com
Signed-off-by: Josef Bacik <jbacik@fb.com>
[ Pulled from the archeological digging of my INBOX ]
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace_entries.h

index fc8e97328e540df40c3fdd5e534134431437a03f..78c146efb862369bada410a1ce43d02c816be813 100644 (file)
@@ -174,7 +174,7 @@ FTRACE_ENTRY(kernel_stack, stack_entry,
 
        F_STRUCT(
                __field(        int,            size    )
-               __dynamic_array(unsigned long,  caller  )
+               __array(        unsigned long,  caller, FTRACE_STACK_ENTRIES    )
        ),
 
        F_printk("\t=> %ps\n\t=> %ps\n\t=> %ps\n"